Skip to main content

Full text of "Compute! Magazine Issue 071"

See other formats


/ 


'<!' 


A  Turning  Point  For  Atari?  ' 

Report  From  Tlie  Winter  Consumer  Electronics  Show  ^ 


iW-^T-ft- 


COMPUTE! 

The  Leading  Magazine  Of  Home,  Educational,  And  Recreational  Computing 


$2.95 
April 
1986 
Issue  71 
Vol,  8,  No,4 

S3  75  Conada      (=» 
02193  ^s* 

iSSN01W-357X 


New  Technologies: 

The  Converging  Digitql 

Universe 

Why  Everything  From 

Computers  &  CD-ROIMs 

To  TVs  &  Satellites 

Are  On  A  Collision  Course 

Adding  Power  t 

To  ST  BASIC 
Valuable  Techniques 
For  Atari  Programmers 

Apple  Hi-Res  Graphifs* 
Mix,  Flip,  And  Copy 
High-Resolution  Screens 

64  Screen  Genie 
A  Magic  Method 
For  Character  Graphics 

t 
AmigaDOS  Batch  Files 
Take  Control 
Of  Your  Amiga 

Atari  FontMaker  . 
Design  Your  Own 
Custom  Characters     ^" 


jH 

sSH 

• 

■ 

« 

4 

- 

- 

■ 

"7U86"02193' 


(No  I.D.  required  for  half-elves.) 


When  the  Going  Gets  Tough, 
the  Bard  Goes  Drinking* 


Hnd  the  going  is  tough 
.  in  Skara  Brae  town. 
The  evil  wizard  Mangar    , 
has  cast  an  eternal  winter 
spell.  Monsters  contro 
the  streets  and  dun- 
geons beneath.  Good 
citizens  fear  for  their 
lives.  What's  worse, 
there's  only  one  tavern 
left  that  serves  wine. 
But  the  Bard  knows 
no  fear  With  his  trusty 
harp  and  a  few  rowdy 
minstrel  songs  he  claims 


■i;i;-.«T    Hit     8C    «m 


n»- 


are  magic,  the  Bard  is  ready 
to  boogie.  All  he  needs  is 
a  band  of  loyal  followers: 
a  light-fingered  rogue  to 
find  secret  doors,  a 
couple  of  fighters 
to  bash  heads,  a  con- 
jurer to  create  weird 
allies,  a  magician  for 
magic  armor 
Then  it's  off  to  com- 
bat, as  soon  as  the  Bard 
finishes  one  more  verse. 
Now  what's  a  word  that 
rhymes  with  "dead  ogre?" 


Vr^5z  Pny  y.s-j 


4  classes  of  magic  user,  including 

wizard  and  sorcerer.  85  new 

magic  spells  in  all. 


,tva\«llld 


128  color  monsters,  many 
animated.  All  challenging. 

The  Bard's  Tale 

from 


Full-color  scrolling  dungeons. 

16  levels,  each  better  than  the 

one  before.  3-D  city,  too. 


ELECTRONIC  ARTS'- 


Specs,  100%  machine  Unfjuage,  400K  wonh  on  2  disks.  64K  RAM  minimum;  enhanced  for  12«K.  Now  available  for  Appk-  II  family  for  S44  95.  C-64  &  128  for  539  95 
To  orden  Visit  your  rclailir  or  call  (800)  227-6703  (In  Calif  call  (800)  632-797'Jl  for  VISA  or  M.isrcrCard  ordt-rs.  To  purchas.-  hy  mail,  send  check  or  monev  order  to  ticctronic 
Arts    P.O  Box  306.  Half  Moon  Bay.  CA  94109,  Add  S3  for  insured  shipping  and  handline.  Allow  1-4  weeks  for  delivery  The  Bards  Tale  us  worth  ihe  wair 

Apple  ,s  a  trademark  of  Apple  Computer.  Wizardry  is  a  rocistered  trademark  of  Sir-Tcch  Soft^^'ate,  Inc  Ultima  is  a  registered  trademark  of  Richard  Gtirnott,  The  Bard  sTale  and 
Electronic  Arts  are  trademarks  of  Electronic  Arts.  For  a  copy  of  our  complete  catalogue  and  direct  order  form,  send  S.50  and  a  stamped,  self-..ddressed  envelope  to  Eleclrontc 
Arts,  2755  Campus  Drive,  San  Mateo  CA  94403. 


-*!;>: 


We  dorit  care 
which  computer  you  own 


Bm  Well  help  you    «| 
get  the  most  out  of  it. 


'Smimf^" 


CompuServe  puts  a  worJd  of  information,  communications,  and  entertainment  at  your  flngertips. 


see  your  nearest  computer  dealer.  To 
receive  our  informative  brochure  or  to 
order  direct  call  or  write: 

CompuServe^ 

Consumer  Information  Service.  P.  O  Box  20212 
5000  Arlington  Centre  Blvd  .  Columbus,  OH  43220 

800-848-8199  in  OhloCall  614-457-0802 
An  H&R  Block  Company 


CompuServe  is  the  world's  largest 
information  service  designed  for  the  per- 
sonal computer  user  and  managed  by 
the  communications  professionals  who 
provide  business  information  services  to 
over  one  quarter  of  the  FORTUNE  500 
companies. 

Subscribers  get  a  wealth  of  useful, 
profitable  or  just  plain  interesting  infor- 
mation like  national  news  wires,  home 


shopping  and  banking,  travel  and  sophis- 
ticated financial  data.  Plus  electronic 
mail,  national  bulletin  boards,  forums 
(special  interest  groups),  and  a  multi- 
channel CB  simulator. 

You  get  games  and  entertainment,  too. 
Board,  parlor,  sports,  space  and  educa- 
tional games.  Trivia  and  the  first  online 
TV-stjde  game  show  played  for  real  prizes. 

To  buy  a  CompuServe  Subscription  Kit 


Free  software  from  Electronic  Arts! 

It's  easy! 

Buy  any  of  these  12  smash  hits  from  your  participating  dealer  between  February  1,  1986,  and 

May  31,  1986.  Then  just  mail  in  your  proof  of  purchase,  $5  for  shipping  and  handling,  and  the 

official  "Get  One  Free"  coupon.  So  what  are  you  waiting  for? 

In  case  of  emergency. . . 

If  you  can't  find  a  participating  dealer,  you  can  order  direct  from  us  by  telephone  or  mail. 

Just  call  toll-free  800-227-6703.  In  California  call  800-632-7979.  Have  your  Visa  or  MasterCard 

number  ready.  Just  tell  us  what  you  want  to  buy,  and  what  you  want  for  free.  It's  simple.  And 

there's  a  14-day  "satisfaction  or  your  money  back"  guarantee  on  all  products  ordered  direct. 

In  case  your  pamdpanng  dealer  runs  out  of  "Get  One  Free"  coupons,  use  ihis. 


n  Yes!  I  want  free  software  from  Electronic  Arts! 

n  No  thanks.  I'm  using  my  computer  as  a  doorstop. 

(Check  one) 


Apple 

11,  II+,  //c.  //e 

DDr.J.&.  Larry  Bird 
Go  One-On-One 
D  Archon 

D  Financial  Cookbook 
n  Music  Construction  Ser 
n  Pinbal!  Construction  Set 
D  Seven  Cities  of  Gold 
D  Arclion  11 :  Adept 
n  Movie  Maker 


Commodore 

64  &  128 


Atari 

400-1200  series 


nDr.J.&.  Larry  Bird 
Go  One-On-One 

n  Archon 

D  Financial  Cookbook 

D  Music  Construction  Set 

D  Pinbal)  Construction  Set 

D  Seven  Cities  of  Gold 

D  Archon  II .  Adept 

D  Movie  Maker 

DM.U.L.E. 

D  Realm  of  Impossibility 

D  Mail  Order  Monsters 

D  Racing  Desi*uction  Set 


D  Dr.  J.  &  Larr>-  Bird 
Go  One-On-One 

n  Archon 

D  Financial  Cookbook 

D  Music  Construction  Set 

n  Pinball  Construction  Set 

n  Seven  Cities  of  Gold 

D  Archon  II :  Adept 

n  Movie  Maker 

DM.ULE. 

D  Realm  of  Impossibility 


IBM 

PCjr,  PC,  &  comp. 

D  Dr  J.  &  Larry  Bird 
Go  One-On-One 
D  Archon 

n  Financial  Cookbook 
D  Music  Construction  Set 
n  Pinbail  Construction  Set 
D  Seven  Cities  of  Gold 


Please  send  my  free  software  to  the  following  address.  1  have  enclosed  the  required  Proofs  of  Purchase  and  $5  (check 
or  money  order  payable  to  Electronic  Arts)  to  cover  the  cost  of  shipping  and  handling  ($7  Canadian), 

PLEASE  PRINT 


Name 
Address 
City 
Phone 


J_ 


State 


Zip 


SiETiaruTe ^ : ^" " 

Proof  of  Purch.iM'   Si-nd  us  ihe  fiillowinn  iwn  irL-mM  II  thi-  dait-d  cash  n-uislt-r  Inpt-  nr  rcn-iri  showini;  the  rrodufl  vuu  purchnsi-d,  and  21  find  the  Command 
Summary  <>t  Ri?f<?rcnri-  Card  insidi-  ihc  piickafii-  ytiii  purchased.  Cut  off  ihc  pan  numhor  on  ihf  Kick.  UmtT-k-ft-hand  mJi'  of  the  card,  or  [he  product  namu  fnmi 
ihc  from  of  the  card  Send  [hesL'  two  ili-ms  and  $5  for  shipping  and  h.indMnn  1 57  Canadian).  alon|!  wilh  ihc  coupon,  to  Electronic  Arts,  "Buy  1,  Get  1  Free" 
P.  O.  Box  7530,  San  Mateo,  CA  94403.  This  offer  CKpires  May  51,  IWt.  Oprn  lo  rosidents  of  thi-  USA.  isnd  Caiiad-I  ™tv  Only  tk-  produi-n  liMt-d  an'  .ivailabk- 
for  this  promotion   No  subsiirutions  \\ill  he  accepted. 


Li 


(no  dogs  included . . .) 


Let's  face  it.  Buying  home  software  can  be  a  risky  proposition.  Good  software  costs  a  lot  of  money. 

Cheap  software  practically  rolls  over  and  barks.  But  look  at  this.The  titles  listed  below  are  Electronic  Arts' 

greatest  hits.  They've  all  scored  on  the  "top  twenty"  best-seller  charts.  Between  them  they've  won  over  60 

product  quality  awards  —  making  them  the  most  honored  products  in  the  home  software  industry. 

Best  of  all,  there's  no  longer  any  reason  to  swallow  hard  when  you  think  about 

treating  yourself  to  quality  software.  Because  now  you  can: 

Buy  1,  Get  1  Ftiee. 


DR.  J.  &.  LARRY  BIRD 

CO  ONE-ON-ONE" 

The  bfst-selliiiK  computer  sports 

simulntion  nf  .ill  [ime. 

"Came tif  thi:  \t:ur"-  EL'tsirnrut:  Gamc'i 

Appli- ''/  familv.  C-M  &  128, 

Alari.  [BM  PQr,  PC.  and  comp. 


PINBALL 

CONSTRUCTION  SET' 

Build  your  own  vrdt-i^  pinhall  tjnmcs 

'  Bf-U  Gfimt'  Ct-ntTiHuT"  -  Jfi/dutir/d 

Apple  //  fomily.  C-e4  &  128,  Atari. 

IBM  rCjr.  PC.  antJ  ctimp. 


MUSIC 
CONSTRUCTION  SET" 

Composiiitin  for  anyone  u-ho  c.in 

pi^int  n  inystick. 

"Bt'sf  Music"  GentTUtor'"  —  /n/ouor/J 

Apple  //  family,  C-6-(  &  128.  Atari. 

IBM  PCjr,  PC.  and  comp. 


RACING 
DESTRUCTION  SET" 

Land  mines,  nil  slicks,  anim^ited 

spin-DU!s,  collisions  anJ  crashes. 

". .    the  ultimati-  racing  gann?. .."" 

—  Computer  EnteTwncr. 

C-64  &  128. 


SEVEN  CITIES  OF  GOLD" 

Pl.iy  Conquisr.idi^r  in  rhis  ctlucnrionnl 

adventure  of  history  and  ^eogrnphy, 

"Best  Ro/f-P/fl^imjj  AdveniuTc' 

~  Family  Cniti^Htinj^ 

Apple  //  famiiy,  C-t^  &i  128.  Atari. 

IBM  PCjf.  PC.  :ind  c.mp. 


ARCHON'" 

Like  chess  with  arc.ndc  Kirrle  action 

"Came  of  the  Year" 

—  Cyenuv^  Computing 

Apple  //  family,  C-64  &t  128.  Atari. 

IBM  PCjr.  PC.  and  comp 


ARCHON  II:  ADHPT" 

Grnduate  school  for  Archun  nddicrs. 

Even  rrvore  sirnteKV  nnd  mafjjc. 

"Best  Strategy/ Arcddi:  Gdmt-' 

—  Rimily  CompLtiiTlR 

Applt  //  family,  C-64  ik  128.  Atari. 


MAIL  ORDER  MONSTERS™ 

Nen'.  UVc  ;in    Archon 

Construction  Set!' 

"Belt  CoJiUniclion  Set" 

-  Fjmil>  Computmg 

C-64  &  128. 


MOVIEMAKER" 

Create  your  own  hi^h-qualiiy 

animniej  mo\ie,s. 

A  inasfi'Tpieitt'" 

-  Crt'iiinii-  Cimif>M(in^' 

Apple  //  family.  C'64  &  128.  Atar; 


REALM  OF  IMPOSSIBILITY" 

Aciion  and  adventure  jn  3  world  nf 

Escher-likf  iJIiisinns   Includes  a  unique 

2-player  conper.iTivc  mode 

C-64&  128.  Atari. 


m,l;.l,e." 

The  best  multi-pLiyfr  computer  game 

of  all  timc- 

■■fifsf  Snn\£gy  Game'-  Infou-arld 

"Best  Muhi'Player  Game" 

-  Efetirflntc  Games 

C-64&  128,  Arari. 


FINANCIAL  COOKBOOK'' 

Take  ct>n:rol  of  your  personal  finances. 

Like  a  calculator,  spreadsheet,  and 

financial  advisor  combined. 

Apple//  family.  C'64  &  128. 

Atari.  IBM  PCjr.  PC.  and  comp. 


0.d.r  M„„.„,  „d  R„c,„.  D„„„c.™,  S., ...  J>^X.27jl'o[Z",^TAt  *'""■  """"  "''"  "  ^  •■  "^    ""'■"  "f '"'r<"..h,hty.  Ma,l 


ELECTRONICARTS 


Elementary  Amiga  BASIC 

C,  Regena 

0-87455-041-6.  $14.95 
Disk  $15.95 


Elementary  ST  BASIC 

C.  Regena 

0-87455-034-3,  $14.95 
Disk  $15.95 


BASIC 

programming 
at  its  best! 

Two  new 
programming 

guides  from 

COMPUTE!  Boolcs. 


Written  by  llie  autlior  of  tlie  bestseliing  Programmer's  Heference  Guide  to  the  TI-99/4A,  tliese  books 
introduce  you  to  ttie  new  and  powerful  BASIC  on  the  Amiga  and  Atari  ST  personal  computers.  The 
computers'  impressive  graphics,  animation,  and  sound  can  be  unlocked  with  the  right  commands,  and 
BASIC  is  the  place  to  start.  Regena  sliows  you  how— in  the  clear,  concise  language  that's  made  her 
such  a  popular  writer. 

Complete  descriptions  of  the  Amiga's  and  ST's  BASIC  commands,  syntax,  and  organization  take 
you  from  novice  to  full-power  programming.  Sample  programs  and  subroutines,  all  ready  to  type  in,  are 
included.  Plus,  both  books  offer  you  working  software  while  showing  you  how  to  write  your  own 
programs.  A  disk  is  also  available  for  each  book  which  iociudes  all  the  programs  from  the  book  m  an 
easy,  ready-to-ioad  format.  

SPBOAL  COMBtNATION  OFFER 
Order  the  book  and  (Ssk  together  lor  only  $29.95! 

You'll  find  these  new  programming  guides  and  many  more  useful,  entertaining  COMPUTE!  books  at  your  local  computer  and  book 

stores.  Or  you  can  order  directly  from  COMPUTE!  Books. 

For  the  fastest  service,  call  toll  free  1-800-346-6767  (in  NY  212-887-8525).  Or  mail  the  attached  coupon  v/ith  your  payment  to 

COMPUTE'  Books,  P.O.  Box  5038,  F.D.R.  Station,  New  York,  NY  10150. 

Please  add  shipping  and  handling  charges  to  all  orders:  In  U.S.,  S2.00  per  book,  disk,  or  combination  package;  $5.00  per  item  airm^l. 


r" 


I  want  the  best  in  BASIC  progfamnilns  guides.  Please  send  me: 

ElBmentary  ST  BASIC,  (034-3),  $14-95  each 

Etementary  ST  BASIC  Dtak.  $15.95  each 

Eltmwtary  ST  BASIC  disk  and  book  combination,  $29.95 

Elemmary  Amiga  BASIC,  (041-6),  $14.95  each 

Elemantary  Amiga  BASIC  Dl»k,  $15.95  each 

'  Elarmntary  Amiga  BASIC  disk  and  book  combination,  (057-2),  SZ9.9& 

Sublolal 
NC  resldftntt  add  4.5%  soles  lax 


All  OfiOERS 

MUSTBt 
PWPAID  IN 
U.S.  fUNDS 


Shipping  charges 
(S2.00  per  Mom  In  U.S.  and  surtaco  man; 
S5.00  pef  Item  alnrvall) 
Total  amount  enclosed 


D  Payment  endosed  (check  or  money  order) 

D  Charge     D  MasterCard     DVisa     D  American  Express 


Account  No. 


Exp.  Date  . 


(RWuired) 


Name 

Address  . 
City 


Zip. 


I  State '~~  36412112  I 

LAIloiv  4-6  weeks  (of  delivery.  _______^— — ^^— ^— ^— ^— ■~~~~"~~'^~"  ~~^ 

COMPUTE!  PublicotionsJnc.^ 


Port  of  ABC  CoosLmer  h/as^ozmes.  Jnc 
Ooe  of  the  ABC  PuDhsTung  CooipOi^ei 
825  ?*h  Avenue,  fith  Fioor.  Mew  VOft,  NV  10015 


(XJMPUTE'  books  are  available  in  the  U.K.,  Europe,  the  Middle  East  and  Africa  from 
SSeS..  1  St.  Anne's  Road.  Eastbourne,  East  Sussex  BN21  3UN,  England 
mi  in  Canada  from  Mc(3raw-Hill.  Ryerson  ua..  aoo  r,.,....  >^  «r.rhorouQh, 
Ontario,  Canada  MIP  2Z5. 


COMPUTE 


APRIL  1986 
VOLUME  8 
NUMBER  4 
ISSUE  71 


FEATURES 


20   New  Technologies:  The  Converging  Digital  Universe   .  . 
30   A  Turning  Point  for  Atari? 

Report  from  the  Winter  Consumer  Electronics  Show 
42   Tug-a-Wor 


Seiby  Boteman 

.    Tom  R,  HaifhiJi 
.  .  .    Mark  Tuttie 


GUIDE  TO  ARTICLES 
AND  PROGRAMS 


64/128/AT/AP/AM/ 
PC/PCJr/ST/TI 


REVIEWS 


51  Silent  Service Neil  Randall 

52  DeluxePainf  for  Amiga     Lee  Noel 

58  S'More  for  Commodore  64   Art  Hunklns 

60  Heart  of  Africa Neil  Randall 

65  Hacker  Todd  Heimarck 


65  MasterType's  Writer  for  Apple 

66  HabaWriter  for  the  Atari  ST  .  , 


Stephen  Levy 
George  Miller 


64/1 28/AP/AT/PC/PCjr 

AM 

64 

64/128/AT/AP 

64/128/AP/AT/ 

PC/PCjr/AM/ST/Mac 

AP 

ST 


COLUMNS  AND  DEPARTMENTS 

6  The  Editor's  Notes    Tom  R.  Halfhill 

10  Readers'  Feedback   The  Editors  and  Readers  of  COMPUTE! 

19  HOTWARE    

110  The  World  Inside  the  Computer:  The  Robot  Inside  You    Fred  D'IgnazIo 

1 1 1  Computers  and  Society: 

Humanizing  the  User  Interface,  Part  2 David  D.  Thomburg 

112  The  Beginner's  Page:  More  String-Slicing    Tom  R.  Halfhill 

113  Telecomputing  Today:  An  April  Trade  Show  Report Arlan  R.  Levitan 

1 14  Programming  the  Tl:  Creating  Rhythms    C.  Regena 

116  IBM  Personal  Computing:  Two  Checkers  and  a  Manager   Donald  B.  Trivette 

117  INSIGHT:  Atari— Binary  Files,  Unite!   Bill  Wilkinson 


Tl 

PC/PCjr 

AT 


THE  JOURNAL 


68  Loading  and  Linking  Commodore  Programs,  Part  2    Jim  Butterfleld 

71  Adding  System  Power  to  ST  BASiC,  Part  1  Kevin  Mykytyn 

74  Mousify  Your  Applesoft  Programs,  Part  2    Lee  Swoboda 

79  IBM  Variable  Snapshot   Tony  Roberts 

82  Atari  Textdump    Ralph  Johnson 

83  AmigaDOS  Batch  Files Charies  Brannon 

86  Apple  Disk  Duper  Jason  Coleman 

87  Smooth-Scrolling  Billboards  for  IBM    Paul  W.  Carlson 

89  Commodore  64  Screen  Genie    James  A.  Ledger 

94  Screen  Saver  64 Stephen  E.  Masters 

97  Atari  FontMaker   Charies  Brannon 

102  Hi-Res  Graphics  Aid  Routines Jon  Hylands 

104  Commodore  64  Key  Phantom Melvin  Baker 

107  Screen  Clock  for  IBM Marc  Sugiyama 

109  CAPUTEI  Modifications  or  Corrections  to  Previous  Articles 

1 1 9  News  &  Products 

121  MLX:  Machine  Language  Entry  Program  for  Atari 

123  MLX:  Machine  Language  Entry  Program  for  Commodore  64 

125  COMPUTEi's  Guide  to  Typing  In  Programs 

128  Advertisers  index 

TOLL  FREE  Subscription  Order  Line 
800-247-5470  (in  lA  800-532-1272) 


64/128A'IC/-F4/16 

ST 

AP 
PC/PCjr 

AT 

AM 

AP 
PC/PCjr 
64/128 
64/128 

AT 

AP 
64/1 26 
PC/PCjr 


NOTE:  See  page  125 
before  typing  In 
programs. 


AP  Apple.  Mae  Moclatosh.  AT 
AtQrt.  tT,  AtQrt  ST,  V  VK:-20.  64 
Commodore  64.  +4  Commodore 
Plus/4.  16  Commodore  16.  lit 
Commodore  128,  P  PET/CBM.  Tt 
Texas  Instruments.  PC  IBM  PC,  PCjr 
IBM  PCjr.  AM  Amiga.  'General 
Inferesl. 


COMPUTE!  Publicat!onsJnc.@ 

Part  of  ASe  Contumar  Magozlnat,  Inc.  ^^ 

Ona  of  ttiB  ABC  Publltliing  Cotnpanlvt 

ABC  Publishing.  President.  Robert  G.  Burton 

1330  Avenue  of  the  Americos.  New  York.  New  YorV  10019 


COMPUTEI  The  Journal  for  Progressive  Computing  (USPS:  537250)  is  published  monthly  by 
COMPUTE!  Publications,  Inc.,  825  7th  Ave,,  New  York,  NY  10019  USA.  Phone;  (212)  265-8360, 
Editorial  Offices  are  located  at  324  West  Wendover  Avenue,  Greensboro,  NC  27408,  Domestic 
Subscriptions;  12  issues,  $24,  POSTMASTER:  Send  address  changes  to:  COMPUTB  Magazine,  P.O. 
Box  10955,  Des  Moines,  lA  50950.  Second  class  postage  paid  at  Gi^nsboro,  NC  27403  and  addi- 
tional mailing  offices.  Endre  contents  copyright  ©1986  by  COMPUTEI  Publications,  Inc.  All  rights 
reserved,  ISSN  0194-357X. 


Editor's  Notes 


COMPUTE!  Editor  Tom  Halfhill  contrib- 
utes an  editorial  this  month. 

— Robert  Lock,  Editor  in  Chief 

The  latest-generation  personal  comput- 
ers present  the  best  evidence  to  date 
that  miCTOcomputers  are  evolving  into 
desktop  mainframes.  Megabytes  of 
memory,  hard  disk  drives,  high-speed 
processors,  and  multitasking  operating 
systems  are  no  longer  limited  to  the 
monster  machines  locked  away  in  the 
data  processing  departments  of  govern- 
ments and  big  corporations.  Now  you 
can  get  these  features  in  a  personal 
computer  that  costs  less  than  $2,000 
and  fits  comfortably  on  a  desktop. 

But  why  would  you  want  to?  After 
all,  many  people  are  questioning  why 
anyone  needs  any  kind  of  computer  in 
their  home.  Are  the  new  machines  just 
a  more  blatant  example  of  technological 
overkill? 

Practically  everyone  who's  ever 
used  a  computer  understands  the  value 
of  more  memory  and  mass  storage, 
high-speed  processing,  and  faster  input/ 
output.  All  those  things  translate  into 
more  horsepower,  and  if  the  price  is 
right,  we'll  welcome  more  horsepower. 
But  one  feature  that  some  people  are 
regarding  with  skepticism  is  multitask- 
ing— the  ability  to  run  more  than  one 
program  at  a  time.  Is  it  really  practical 
to  run  a  spreadsheet  and  a  word  proces- 
sor simultaneously?  Even  if  the  com- 
puter can  do  two  things  at  once,  the 
user  probably  can't. 

This  criticism  overlooks  several  ad- 
vantages of  multitasking:  its  conven- 
ience, the  way  it  shifts  busy  work  away 
from  the  user  and  onto  the  computer, 
its  implications  for  software  design,  and 
its  future  applications  in  tomorrow's 
homes. 

It's  hard  to  appreciate  the  sheer 
convenience  of  multitasking  until 
you've  experienced  it.  Even  if  you 
aren't  actively  using  two  or  more  pro- 
grams at  once,  you  can  keep  them  load- 
ed in  memory,  available  at  the  press  of 
a  key  or  click  of  a  mouse  button.  For 
instance,  you  can  type  a  letter  with  a 
word  processor,  switch  to  a  terminal 
program  to  upload  it  to  an  electronic 
mail  service,  then  switch  to  BASIC  to 
finish  a  program  you've  been  writing. 
On  most  home  computers,  that  would 


require  rebooting  the  machine  several 
times,  swapping  disks,  running  differ- 
ent programs,  and  waiting. 

Multitasking  can  also  spare  you 
some  drudgery  by  letting  the  computer 
do  the  tedious  jobs.  If  you  log  onto  a 
commercial  information  service  to 
check  stock  quotations  every  evening, 
you  can  set  up  the  computer  to  do  this 
for  you  automatically — even  while 
you're  using  the  machine  for  something 
else  in  the  meantime.  Multitasking  is 
something  that's  hard  to  do  without 
once  you've  had  it. 

Multitasking  also  lets  you  create 
your  own  integrated  software  pack- 
ages. You  can  buy  whatever  word  pro- 
cessor, graphics  program,  spreadsheet, 
and  terminal  program  you  want  and 
load  them  all  into  memory  at  once.  If 
the  computer  supports  a  standardized 
file  transfer  protocol — as  do  the  Macin- 
tosh and  Amiga — you  can  cut  and  paste 
pictures  or  spreadsheet  tables  into  doc- 
uments created  with  the  word  processor 
and  so  forth,  even  if  the  programs  were 
made  by  different  software  companies. 

Finally,  there  are  exciting  possibili- 
ties for  multitasking  in  the  future.  Re- 
member that  microcomputers  are 
following  the  paths  established  by 
mainframes;  it's  a  small  step  from  multi- 
tasking to  multiuser  processing.  If  a 
computer  can  run  several  programs  at 
once  in  windows  on  a  single  screen, 
why  not  turn  those  windows  into  sepa- 
rate screens  and  put  them  in  different 
rooms?  We  know  from  our  mail  and 
readership  surveys  that  many  of  you 
are  already  multicomputer  households. 
Mom  and  Dad  have  a  computer  in  the 
study,  and  the  kids  have  one  or  two  in 
the  family  room  or  bedroom.  Someday 
you'll  be  able  to  buy  a  single  personal 
computer  with  enough  brute  force  to 
drive  several  terminals  throughout 
your  home.  Each  terminal  will  be  as 
powerful  and  seemingly  as  indepen- 
dent as  today's  personal  computers,  yet 
the  system  will  be  economical  because 
you'll  all  share  the  same  printer,  modem, 
hard  disk  drive,  and  CD-ROM  player. 

The  main  disadvantages  of  multi- 
tasking— the  amounts  of  memory  and 
processing  time  it  can  gobble  up — are 
temporary  annoyances.  Memory  chips 
are  getting  cheaper  as  fast  as  micro- 
processors are  growing  more  powerful. 


Atari  recently  introduced  the  first 
1024K  computer  for  under  $1,000,  just 
five  years  after  an  8K  Atari  800  retailed 
for  $1,000.  And  Motorola  recently  an- 
nounced a  20  megahertz  version  of  its 
68020  microprocessor,  referred  to  as 
the  "mainframe  on  a  chip." 

It  seems  that  the  only  real  problem 
to  be  overcome  is  the  incredible  com- 
plexity of  vrating  and  debugging  a  true 
multitasking  operating  system.  Ask  an 
IBM  owner  about  all  the  popular  Side- 
kick-type, co-resident  programs  that 
compete  for  the  attention  of  DOS  inter- 
rupts and  the  keyboard.  Or  ask  an 
Amiga  owner  about  the  weird  things 
that  can  happen  when  the  computer 
tries  to  do  too  much  at  once.  (In  fact, 
one  of  the  strangest  things  we've  seen 
on  the  Amiga  is  something  that  can  be 
described  as  a  "half  crash."  On  practi- 
cally any  other  computer,  a  system 
crash  is  a  system  crash — the  machine 
locks  up  and  you  have  no  choice  but  to 
reboot.  On  the  Amiga,  we've  managed 
to  crash  part  of  the  computer  while  the 
other  part  struggles  valiantly  onward. 
You  end  up  rebooting  anyway  just  to 
play  safe,  but  it's  an  interesting  demon- 
stration of  multitasking.) 

Essentially,  multitasking  gives  you 
the  near-equivalent  of  several  comput- 
ers in  a  single  box.  And  if  the  box  is 
priced  right  and  meets  your  other  re- 
quirements, why  walk  when  you  can 
run? 

Tom  R.  Halfhill,  Editor 


6     COMPUTEI      April  1986 


V  YOU  CAN  HND 

A  BETTER  PROGRAM 

WEUBUYITFORYOU! 


WORD  WRITER  a.%kir 

Now  wMi  85,000  word  Spelling 
Checker 

•  An  efficient,  80-column  professional 
word  processing  system  which  includes 
a  spelling  checker  and  built-in 
calculator. 

■  Contains  all  the  features  you'll  need  for 
everyday  word  processing,  plus  most  of 
the  sophisticated  features  found  in 
more  expensive  programs:  document 
chaining,  form  letter  printout,  page 
separations,  horizontal  and  vertical 
scrolling,  and  more. 

With  Timeworks  you  get  more 
power  for  your  dollar 

You  can  use  each  program  alone.  Or 
interface  this  trio  -  one  at  a  time  if  you  like 
-  info  a  completely  integrated  productivity 
system  that  delivers  all  the  power  and 
features  most  of  you  will  ever  need ...  at 
a  cost  that  lets  you  enjoy  their  use. 

Look  for  these  and  other  Timeworks  pro- 
grams at  your  favorite  dealer.  Or  contact 
Timeworks,  444  Lake  Cook  Road,  Deer- 
field,  IL  60015.  Phone:  (312)  948-9200. 


DATA  MANAGER  2 

Foster,  more  efficient,  more 
versotiie 

•  A  complete  general  information  storage 
and  retrieval  system  with  report-writing, 
graphics,  statistics,  and  label-making 
capabilities. 

•  Exclusive  X-SEARCH,  X-SORT,  and 
X-CHART  features  allow  you  to  cross- 
search  any  category  of  information;  sort 
items  alphabetically,  numerically,  or  by 
date;  break  down  statistical  information 
into  categories;  and  graphically  view 
your  results. 

With  Timeworks  you  get  more 
than  softwore 

You  Get  Our  Customer  Technical 
Support  Team 

At  the  other  end  of  our  loll-free  hotline, 
you'll  find  our  full-lime  Customer  Techni- 
cal Support  Team.  Free  of  charge  to  all 
registered  users. 

You  Get  Our  Liberal  Trade-Up  Policy 

You'll  find  the  details  inside  each  package. 


SWIFTCALC  -'^^  SIDEWAYS 

New  eosy-to-use  soreadsheet 
for  home  and  small  business  use 

•  The  SIDEWAYS  option  lets  you  print 
all  your  columns  on  one,  continuous 
sheet . . .  sideways. 

•  250  rows  and  up  to  250  columns  (128K 
version)  provide  up  to  62,500  cells 
(locations  on  the  spreadsheet)  in  which 
to  place  information. 

•  Performs  mathematical  functions  up  to 
17  digits.  Allows  the  use  of  minimum 
and  maximum  values,  averages,  sums, 
integers,  absolute  values  and  exponen- 
tial notation, 

*  With  Timeworks  you  get  our 
Money  Bade  Guarantee 

If  you  can  find  anything  that  works  better 
for  you,  simply  send  us  your  Timeworks 
program,  your  paid  receipt,  and  the  name 
of  the  program  you  want,  along  with  your 
check  or  credit  card  number  for  any  retail 
price  difference.  If  it's  available,  we'll 
buy  it  lor  you." 

For  Apple, 

Commodore  128  (128K) 
&  Commodore  64 
Computers 


More  power  for  your  dollar. 

"  Offer  va6d  (or  90  days  irgm  dale  ot  puichase. 

■•'  SegtacfesJ  Irsdemarts  of  Appfe  Compuler.  Inc.,  IntanilicinaJ  ausinsss  Maclines  Cwporalmi.  aid 
Coffimodofe  Compulef  Systenls 
t  1985  Tmevnyks.  tnc  All  nghs  reSBvat. 


Other  Timeworks  Programs: 

•  The  Evelyn  Wood  Dynamic  Reader 
Sylvia  Portef's  Personal  Finance  Series 

■  Swiftax  ■■■  Cave  of  the  Word  Wizard 
E  Business  Systems  ■  Wall  Street 

The  Electronic  Checkbook 

■  The  Money  Manager 


Publlshof 

Founder/Editor  In  Chlel 
Senior  Edlfor 
Monaging  Editor 
Executive  Editor 


Jomos  A.  Coseila 
RoOerl  C.  Lock 
Richord  Monsfleld 
KaJfvleen  Martinek 
Selby  Batsman 


Editor 

Assistant  Editor 
Production  Director 
Production  Editor 
Editor.  COMPUTEI's  GAZETTE 
Technicol  Editor 
AsslslonI  Tect^nlcol  Editors 
Program  Editor 
Asslslont  Editor.  COMPUTEfs 

GAZEHE 
Assistant  Features  Editor 
Progromming  Supen/lsor 
Edllorlol  Programmers 
Researcti/Copy  Editor 
Copy  Editor 
Submissions  Reviewer 
Programming  Asslstonts 

Executive  Assistant 
Admlnlslrallve  Assistants 

Associate  Editors 


Contributing  Editor 


Tom  R.  Holfftill 

Ptillip  Nelson 

Tony  (Joborls 

Soil  Cowper 

Lance  Eiko 

Otiis  15.  Cowper 

John  Krouse.  George  h/liller 

Ctiartas  Brannon 

Todd  Hoimorck 

Kothy  Yakol 

Patflck  Porflsh 

Tim  Victor.  Kevin  Ivlykytyn 

Joon  Douleau 

Ann  Dovies 

Ivlofk  TuTtle 

David  Florance.  Dcvid 

Hensley 

Debi  Nash 

Julia  Fleming,  iris  Brooks.  Mory 

Hunt.  Sybil  Agee 

Jim  Butterfield 

Toronto.  Canada 

HOEvey  HemKsn 

Greensboro,  NC 

Fred  O'lgnozio 

Roanoke.  VA 

David  Thornburg 

Los  Altos,  CA 

Bin  Wilkinson 


COMPUTEI's  Book  Division 

Ecfllor 
Assistant  Editor 
Dlroctof.  Book  Sales  & 

Morkeling 


Stephen  Levy 
Gregg  kelier 

Steve  Voyatzis 


Production  Manager 
Art  &  Design  Director 
Assistant  Editor.  Art  & 

Design 
MechanScQl  Art  Supervisor 
Artists 

Typeseltlng 
Illustrator 


Irma  Swain 
Jank:e  I?.  Fary 

Lee  Noel 

De  Potter 

Debbie  Bray.  Dabney  Ketrow 

Terry  Cash.  Carote  Dunton 

Harry  Blair 


Director  ol  Advertising 

Sales 
Production  Coordinator 


Ken  vyoodard 
Katriieen  Honion 


Promotion  Asslstoni 


Ccroiine  Dark 


Customer  Sen/Ice  Manager  Diane  Longo 
Dealer  Soles  Supervisor         Orchid  Tamoyo 
individual  Order  Supervisor  Judy  Toyior 
Receptionist  Anita  Armfieid 

Warehouse  Manager  JoHn  Wiiiioms 


Data  Processing  Monoger    Leon  Stokes 


James  A.  Coseila,  President 

I?  Steven  Vetter.  Vice  President.  Finance  and  Planning 


COMPUTE'  Publicotions.  Inc.  pui3iishes: 


coMPure 

COMPUTE'S 


COMPUTEI  Books 

COMPUTE'S 
mM^m^TM  DISK 

COMPUTEI'S 

Apple  Applications  Special 


Editorial  offices: 


Cotpotdte  offices: 


Customer  Service: 


324  West  Wendover  Avenue 

Suite  200 

Greensboro,  NC  27408  USA 

925  7th  Avenue 

New  York.  NY  10019 

212-265-8360 

800-M6^i767 

(inlNV  212-887-3526) 


Coming  In  Future  Issues 

Two  New  Coiumnsi 
For  Atari  ST 
And  Amiga 

Hickory  Dtckory  Dock: 
Teaching  Kids  To  Tell  Time 
For  Commodore,  Atari,  ST, 
Amiga,  Apple,  PC/PCjr 

Commodore  Auto-Boot  Maker 

Custom  Characters 
For  Atari  SpeedScrfpf 

Add  System  Power 

To  Atari  ST  BASIC,  Part  2 

Amiga  Puzzle; 

An  Amiga  BASIC  Application 

Windows  On  The  Commodore 
12B 


Amdit  Bamn 
of  drcnlttloiu 


ITI'A 


KtsufrKF\iblhrKisAs&«iaLion 


Subscription  Orders 

COMPUTEI 

P.O.  Box  1 0954 

Des  Moines,  lA  50340 

TOLL  FREE  Subscription  Order  Line 
800-247-5470 

InIA  800-532-1372 


COMPUTEI  Subscription  Rates 
(12  Issue  Year): 

us  (one  vr)  S24 

(two  yrs.)  $45 
(tfiree  yrs.)  $65 
Canada  and  Foreign 
Surface  Mail  $30 

Foreign  Air 
Delivery  $65 


Advertising  Sales^ 


1.  N«w  England 

John  SavaT 
Eastern  Advertising 
Manager 
212-315-1665 

2.  Mid  Atlantic 

John  Sovoi 
Eastern  Advertising 
Manager 
212-315-1665 

3.  Southsott  &  For«lgn 

Harry  Blair 
919-275-9809 


4.  Midwest 

Gordon  Benson 
312-362-1821 

5.  Northwest/ 
Mountain/Texas 

Plioebe  Thompson 
Dani  Nunes 
406-354-5553 

6.  Southwest 

Ed  Winchell 
213-378-8361 


Director  of  Advertising  Sales 

Ken  Woodard 

COMPUTE!  Home  Office  212-687-8460 

Address  all  advertising  materials  to: 

Kathleen  Hanlon 

Advertising  Production  Coordinator 

COMPUTEI  Magazine 

324  West  Wendover  Avenue 

Suite  200 

Greensboro,  NC  27408 


Trie  COMPUTE!  suOscfiber  iist  is  made  ovaiioble  to  caelully  screened  orgonlzations  with  a  product  or  service  which 
may  be  ol  interest  to  our  readers.  If  you  prefer  not  to  receive  such  rr^oilings.  please  send  an  e*act  copy  of  you: 
subscription  label  to;  COMPUTEI  PO.  Box  1CWS5.  Des  Moines.  iA  50950,  Include  □  note  indicating  your  preference  to 
receive  only  your  subscription. 


Authors  of  manuscripts  warrant  that  all  materials  submitted  to  COMPUTE!  are  original  moteriais  with  full  ownership 
rights  resident  in  said  outhors.  By  submittng  articles  to  COMPUTE!,  authors  acknowledge  that  such  moteriais.  upon 
acceptance  for  publication,  become  the  exclusive  property  of  COtvlPUTEl  Publicotions.  inc.  No  portion  of  this  maga- 
zine may  be  reproduced  in  cny  form  without  written  permision  from  the  publisher  Entire  contents  copyrigrit  ®  1 986. 
COtilPUTE!  Publications.  Inc.  Rights  to  programs  developed  and  submitted  by  outhors  ore  explained  in  our  outhor 
contract  Unsolicited  materials  not  acceoted  tor  pubiicotlcn  In  COMPUTE!  will  be  returned  If  author  provides  a  self- 
addressed  ,  stamped  envelope  Programs  (on  tape  or  disk)  must  occompony  each  submission .  Pnnted  listings  are  op- 
tional, but  helpful.  Articles  should  be  furnished  as  typed  copy  (upper-  ond  lowercase,  please)  with  double  spacing 
Each  page  of  your  article  should  bear  the  title  of  the  Oftlcle.  dote  and  name  of  the  author  COf/PUTE'  assumes  no 
liabJIty  for  errors  in  articles  of  odvertisemenfs.  Opinions  expressed  by  authors  are  not  necessarily  those  of  COMPUTE! 

PET.  CBM.  VIC-20  and  Commodora  M  are  tradamorks  ol  Commodore  ATABI  Is  o  trodemorlr  of  Atari,  he. 

Business  fv^achines.  Inc.  and/or  Commodore  Electronics  Limited  TI-W/4A  is  Q  t[ademon4  of  Texqs  Instruments,  Inc. 

Aople  is  a  troderrio-'k  of  Apple  Corhputer  Company  fJadio  Stiack  Color  Computer  s  o  troderrxsrit  of 
IBIVl  PC  and  PCjr  are  trademarks  of  IntemotiDnal  Business  Machines.  Inc.        Tondy.  Ihc 


Discover  the  thrill  of 


flying! 


With  COMPUTE!  Books'  __ 

40  Great  Flight  Simulator  Adventures 

•Maneuver  around  the  towers  of  the  Vtorld  Trade  Center. 
•Sightsee  the  Hudson  River. 
•Practice  night  flying  and  aerobatics. 


>Vpf 


40 

GREAT 
^FLIGHT 
SIMULATOR 
ADVENTURES 

ma  al  ow  Mioiotertan,  nffn  n^i. 


04  dfocHIKii  Knmgt  IMmg.  amariaa 


40  Great  Flight  Simulator  Adventures 

Charles  Gulick 

Forty  exciting,  customized  flight  simulator  scenarios  put  you  in  the 
pilot's  seat  as  you  fly  over  bridges,  around  skyscrapers,  and  land 
at  mysterious  airports.  Flight  Simulator  (IBM  PC)  and  Flight  Simu- 
lator II  (Apple  II,  Commodore  64,  Atari)  are  two  of  the  most  popu- 
lar games/ simulations  for  personal  computers.  With  this  book,  you 
can  experience  flight  adventures  from  the  moment  you  load  the 
program.  Parameters  set  up  each  flight  and  a  running  commentary 
describes  what  you'll  see  (and  where  to  took  to  see  it).  Ranging 
from  the  simple  and  straightforward  to  the  advanced  and  even 
mystical,  these  40  flights  will  open  a  new  dimension  to  an  already 
outstanding  program. 
»9.95     ISBN  0-87455-022-X 


Mote;  Flight  Simulator  from  Microsoft  Corporation  and  Hight  Simulator  II 
from  Sublogit  Corp.  are  required  in  order  to  use  this  book.  The  t>ook  is 
designed  to  enhance  the  programs. 


Please  send  me  

(ISBN  No.  0-87455-022-X) 

All  orders  must  be  prepaid  in  U.S.  funds. 

Subtotal  

NC  residents  add  4.5%  tax        

$2.00  shipping  and  handling 
charge  per  book.  

Total  amount  enclosed  


copies  of  40  Great  Flight  Simulator  Adventures  at  $9.95  each. 


To  order  this  exciting  adventure  guide,  mail 
the  attached  coupon  with  your  payment  to 
COMPUTE!  Boolts,  P.O.  Box  5038, 
F.D.R.  Station,  New  York,  Ny  10150.  Or  call 
toll  free  1-800-34&6767  <ln  NY  212-887-8525.) 


D  Payment  enclosed  (check  or  money  order) 

D  Charge    D  Visa    D  MasterCard    D  American  Express 

Name 


Address  , 
City 


, State  . 


.Zip. 


Please  allow  4-6  weeks  for  ddivery. 


36402211 


COMPUTE!  Publicatbnsjnc.®  St 

One  of  ine  ABC  Publishing  Companies  ^^^      EastI 


COMPUTE!  books  are  available  in  the  U.K.,  Europe,  the  Middle 

and  Africa  from  Holt  Saunders,  Ltd.,  1  St.  Anne's  Road, 
Eastbourne,  East  Sussex  BN21  30N,  England. 


Readers  Feedback 


fhe  Editors  and  Readers  of  COMPUTE! 


//  you  have  any  questions,  comments,  or 
suggestions  you  would  like  to  see  ad- 
dressed in  this  column,  write  to  "Readers' 
Feedback,"  COMPUTE!,  P.O.  Box  5406, 
Greensboro,  NC  27403.  Due  to  the  volume 
of  mail  we  receive,  we  regret  that  we 
cannot  provide  personal  answers  to  tech- 
nical questions. 


Relocating  Machine 
Language 

I  would  like  to  combine  two  Commo- 
dore machine  language  programs  that 
both  reside  at  location  49152  ($CO0O).  I 
know  that  BASIC  lets  you  relocate  pro- 
grams quite  easily,  just  by  moving  the 
bottom-of-BASIC  pointer  upward. 
How  is  this  done  with  ML  programs? 
Richard  Sands 

Machine  language  programs  written  for  a 
6502-based  computer  are  usually  quite 
difficult  to  relocate.  For  instance,  say  that 
you  have  an  ML  program  at  $C000  which 
starts  with  these  instructions: 

LDA   $C030,X 
JSR     SC200 
JMP    $C400 

None  of  these  instructions  can  be 
relocated  unless  you  change  the  address 
contained  in  the  instruction  itself.  The 
first  (LDA  $C030,X)  retrieves  one  byte  of 
data  from  a  table  beginning  at  location 
SCOiO  (note  thai  the  data  lies  within  the 
program  code).  The  JSR  instruction  works 
like  GOSUB  in  BASIC,  so  JSR  $C20Q  goes 
to  a  subroutine  located  at  SC200  and  then 
returns.  JMP  works  like  GOTO  in  BASIC: 
JMP  SC400  sends  the  computer  straight  to 
the  segment  of  code  located  at  SC400. 
Now  say  that  you  move  the  entire  pro- 
gram down  to  location  $8000.  The  in- 
struction JSR  $C200  still  sends  the 
computer  to  $C200,  but  that  address  isn't 
within  the  program  any  more.  To  make 
the  code  work  correctly  at  $8000,  you'd 
have  to  change  these  three  instructions  to 
the  following: 

LDA   $8030,X 
JSR     $8200 
JMP    $8400 

That's  not  particularly  difficult,  and 
some  machine  language  monitors  even 
have  a  special  command  to  make  such 
adjustments  automatically.  However,  you 
must  be  careful  not  to  change  addresses 


that   refer  to   locations   outside   the 
program: 

JSR  $FFD2 

This  instruction  calls  the  standard 
Commodore  print-a-character  routine,  lo- 
cated in  the  computer's  ROM.  If  you  mis- 
takenly adjust  this  address  along  with  all 
the  internal  address  references,  the  result 
may  be  disastrous.  Now  let's  look  at  a 
more  difficult  case: 

LDA  ($FB),Y 

This  instruction  uses  the  powerful 
and  very  common  indirect  Y  addressing 
mode,  which  refers  irtdirectly  to  an  ad- 
dress held  in  two  successive  zero  page 
addresses  (locations  $FB-$FC  in  this  case). 
There's  no  way  to  tell  by  looking  at  this 
instruction  alone  whether  it  refers  to  an 
area  inside  the  program  (and  hence  re- 
quires adjustment)  or  something  external 
to  the  program  code  (in  which  case  adjust- 
ment may  be  a  mistake).  You'll  have  to 
disassemble  the  program  in  its  entirety, 
looking  for  other  instructiojis  that  affect 
the  contents  of  locations  $FB-FC,  either 
directly  or  indirectly.  If  this  instruction  is 
part  of  a  general-purpose  subroutine,  you 
may  find  that  it's  called  by  many  different 
parts  of  the  program.  Since  free  zero-page 
space  is  limited,  you  may  also  find  that 
other  subroutines  re-use  locations 
$FB-FC  for  an  entirely  different  purpose. 
And  while  it's  obvious  that  an  instruction 
like  STA  $FB  affects  the  contents  of  $FB, 
what  about  ROR  $03,X  or  STA  ($BO),Y? 
Those  instructions  might  just  as  easily 
change  the  address  held  in  $FB-FC. 

Once  you've  sorted  out  all  the  indi- 
rect addressing,  you'll  need  to  check  for 
self-modifying  routines — code  that 
changes  its  own  instructions  while  it  rutis. 
When  that's  done,  you'll  have  to  interpret 
all  the  program's  data  and  variable  areas. 
For  instance,  say  that  you  find  the  follow- 
ing hexadecimal  values  in  a  memory 
dump  of  the  program  code: 

93     05     20     a     54    OD     41     43 

These  bytes  could  be  virtually  any- 
thing—sprite shape  data,  characters  for  a 
printed  message,  part  of  an  internal  dis- 
patch table,  preset  values  for  a  bunch  of 
unrelated  variables,  or  even  garbage  that 
will  be  replaced  with  something  meaning- 
ful when  the  program  runs.  While  some 
programmers  locate  data  areas  at  the  end 
of  the  program,  others  sprinkle  data  and 


variables  freely  throughout  the  code.  Un- 
til you  find  out  exactly  what  purpose  these 
bytes  serve,  there's  no  way  to  tell  whether 
they  need  adjustment.  This  problem,  more 
than  any  other,  makes  it  impossible  to 
write  an  "automatic  ML  relocator"  that 
works  correctly  in  every  case.  The  reloca- 
tor would  need  to  have  as  much  intelli- 
gence as  a  knowledgeable  ML  programmer 
who  thoroughly  understands  the  subject 
program. 

These  problems  generally  don't  apply 
to  68000-based  computers  like  the  Amiga, 
Atari  520ST,  and  Macintosh.  Since  the 
computer  tiormally  decides  for  itself 
where  to  load  the  ML  code,  most  68000 
ML  programs  must  be  relocatable.  That's 
no  great  hardship  for  programmers,  since 
the  68000  instruction  set  includes  many 
relocatable  instructions. 

T28  Atari  Colors 

Here  is  a  machine  language  program 
that  allows  your  Atari  computer  to  dis- 
play 128  colors  at  the  same  time.  The 
program  displays  a  different  color  on 
each  horizontal  display  line. 
10    FOR     1=0    TO    21:REflD    A;P 

OKE  153i+I , A: NEXT  I 
20  POKE  7S2,1;PRINT  CHR»< 

125) : A-USR ( 1536) 
30  DATA  173,11,212,201,32 

, 20B,249, 141, 10,212, 14 

2,24,208, 232,232,2  08,2 

46,  142 
40  DATA  24,208,240,232 

David  Boyer 
Thank  you  for  the  example. 

Using  Preview-80  With  64 
SpeedCalc 

I  own  a  Commodore  64  and  look  for- 
ward to  getting  new  programs  from 
COMPUTE!  each  month,  especially  utili- 
ties. After  typing  in  SpeedCalc  (com- 
pute!, January  1985),  I  was  pleased  to 
find  that  the  "Preview-80"  program 
(COMPUTE!'s  gazette,  November  1985) 
works  just  as  well  with  SpeedCalc  as  it 
does  with  SpeedScript.  This  lets  you  pre- 
view a  SpeedCalc  file  in  80-column  for- 
mat on  the  screen  before  printing  it  out. 
The  procedure  for  using  Preview-80  is 
the  same  as  usual.  First,  load  Preview- 
80  with  LOAD"PREVIEW80",8,1. 
Then  type  NEW,  and  load  SpeedCalc  as 
you  would  normally.  Instead  of  typing 


10     COMPUTEl     April  198(:> 


WINTER  games:     ^ 
TI||4)UEST  FOR  THE  GOLD  CONTINUES... 


You've  captured  the  gold  in  Summer 
Games®  and  Summer  Games  IP.  Now 
it's  on  to  the  Winter  Gamesl  And  what 
an  incredible  setting— a  completely 
realistic  winter  wonderland  featuring 
seven  action-packed  events. 

At  the  Ski  Jump  you  control  your 
form  in  mid-air,  knees  straight,  leaning 
forward.  Hot  Dog  Aerials  challenges 
your  courage  and  your  sense  of  humor. 
In  Figure  Skating  you  leap  into  Double 
and  TMpte  Lutz  jumps— wow  the  crowd 
with  a  perfect  Camel  into  a  Sit  Spin. 
It's  timing  and  style  that  counts.  Free 
Skating  lets  you  choreograph  your  own 
routines.  In  Speed  Skating  it's  you 
against  a  fellow  speed  demon— the 
fastest  human  beings  on  level  earth! 
And  the  Bobsled— still  faster  as  you  fly 
around  hairpin  turns,  leaning  hard  to 
stay  in  the  tube.  Finally  the  Biathlon, 
the  ultimate  challenge  to  your  endur- 
ance in  cross-country  skiing  and 
marksmanship. 

All  of  this  fun  and  excitement  is 
easy  to  learn  and  play.  You  control  the 


action  with  the  joystick,  animating  your 
player  for  style  and  rhythm.  You  choose 
the  country  you  want  to  represent. 
Listen  to  its  national  anthem.  Then  it's 
practice,  training  and  learning  a  win- 
ning strategy  for  each  event.  Now  the 
Opening  Ceremony  and  the  competi- 
tion begins— against  your  friends  or 
the  computer.  Will  you  be  the  one  who 
takes  the  gold  at  the  Awards  Ceremony? 
Will  your  name  be  etched  amongst  the 
World  Record  holders,' 

The  quest  for  the  gold  continues... 
And  it's  all  here— the  strategy,  the 
challenge,  the  competition,  and 
pageantry  of  Winter  GamesI 
kr?u        mu      CM/I2S 


Winter  Games 


COMPUTBiSOFTWA/iE 


1043  Kiel  Ct.,  Sunnyvale,  CA  94089 

Strategy  Ganms  for  the  Action-Game  Player^ 


RUN  to  start  SpeedCak,  type  SYS52000 
and  press  RETURN.  SpeedCak  will  be- 
come active  as  usual.  But  when  you 
press  SHIFT-CTRL-P  for  printed  out- 
put, and  then  press  S  for  output  to  the 
screen,  Preview-80  takes  over.  All  of 
the  Preview-80  options  are  available;  to 
exit  the  Preview-80  window,  press 
RUN/STOP  twice. 

Bob  Starr 

Thanks  for  the  tip. 


Moving  AmigaDOS 
Commands  To  RAM 

Regarding  your  article  "Introduction  to 
AmigaDOS"  (COMPUTE!,  January  1985), 
1  feel  that  it's  inconvenient  to  have  all  of 
the  AmigaDOS  commands — especially 
often-used  commands  like  DIR — stored 
on  disk  rather  than  in  memory.  Is  it 
possible  to  load  all  or  part  of  DOS  into 
RAM?  If  so,  how  much  memory  does  it 
take  up?  Can  you  write  a  batch  file  to 
make  this  part  of  the  boot  sequence? 
Will  AmigaDOS  become  RAM-resident 
in  the  future? 

Barry  Silverstein 

Evenf  AmigaDOS  command  is  disk-resi- 
dent, and  you're  not  likely  to  see  any 
change  in  the  near  future.  This  can  be 
inconvenient  at  times  since,  for  each  sepa- 
rate AmigaDOS  command,  the  computer 
has  to  access  the  same  Workbench  disk 
that  zvas  present  when  you  booted  the 
system.  If  you  have  only  one  disk  drive, 
this  scheme  creates  delays  and  requires 
extra  disk-swapping.  Fortunately,  there's 
a  simple  remedy.  If  you  create  a  RAM 
disk,  you  can  then  COPY  any  or  all  of  the 
AmigaDOS  commands  from  floppy  disk  to 
RAM  disk;  the  amount  of  memory  con- 
sumed depends  on  how  many  commands 
you  copy.  Once  that's  done,  an  ASSIGN 
command  tells  the  system  to  use  the 
RAM-resident  commands. 

The  most  convenient  way  to  move 
AmigaDOS  commands  into  RAM  is  by 
editing  the  startup-sequence  file,  which 
is  similar  to  an  AUTOEXEC.BAT  file  in 
PC/DOS  and  MS/DOS  systems.  When 
you  insert  a  disk  in  response  to  the  Ami- 
ga's Workbench  disk  prompt,  the  com- 
puter looks  in  the  S  subdirectory  of  the 
currently  mounted  disk  for  a  file  named 
startup-sequence.  If  this  file  is  present, 
the  computer  executes  the  AmigaDOS 
commands  that  it  contains.  Since  startup- 
sequence  is  an  ordinary  ASCII  text  file, 
it's  easy  to  modify  with  a  word  processor 
or  any  text  editor  that  handles  ASCII  files. 
(Before  editing  this  file,  make  sure  that 
you  have  at  least  one  copy  of  the  Work- 
bench disk  in  addition  to  the  one  that 
came  with  your  computer.)  If  you  edit  this 
file  with  Textcraft  or  some  other  word 
processor,  you  must  resave  it  in  the  form 
of  plain  ASCII  text,  without  special  for- 
matting characters  or  control  codes. 


AmigaDOS  includes  two  text  editors 
of  its  own.  The  easiest  one  to  use  is  called 
ED.  Type  this  line  at  the  ClI  prompt,  then 
press  RETURN: 
ed  "s/slarlup-aequence" 

This   command   activates  ED   and 

loads  startup-sequence  into  the  editor.  An 
unmodified  startup-sequence  file  looks 
like  this: 

ECHO  "Workbench  disk.  Version  1.1" 

ECHO  "  " 

ECHO  "Use  Preferences  tool  to  set  date." 

ECHO " " 

LoadWb 

endcli  >  nil: 

You'll  probably  recognize  the  mes- 
sages that  appear  on  the  screen  when  you 
boot  up  with  that  disk.  The  LoadWb  com- 
mand loads  and  activates  the  Workbench, 
and  endcli  terminates  the  AmigaDOS 
command  sequence,  returning  you  to  the 
Workbench  screen.  We'll  use  ED  to  add 
some  new  command  lines  between 
LoadWb  and  endcli,  ED  is  a  very  simple 
text  editor:  Use  the  cursor  keys  to  move 
around  in  the  file,  and  the  BACKSPACE 
key  to  delete  characters.  Everything  that 
you  type  is  inserted  at  the  current  cursor 
position  (you  can  use  uppercase  if  you 
like,  but  lowercase  works  just  as  well  and 
is  easier  to  type). 

While  you  could  copy  the  entire  com- 
mand directory  (named  C)  into  the  RAM- 
disk,  that  wastes  a  lot  of  RAM  since  some 
AmigaDOS  commands  are  used  only  rare- 
ly. To  save  memory,  we'll  copy  only  the 
most  commonly  used  commands.  Place 
the  cursor  on  top  of  the  E  in  endcli  and 
enter  these  lines,  pressing  RETURN  at  the 
end  of  each  line: 

echo  "Copying  AmigaDOS  commands  to 

RAM  disk..." 
copy  c/copy  ram:c/copy 
assign  x:  rantrc/copy 
assign  d:  rain:c 
cd  sys:c 
x:  assign  d; 
x:  cd  d: 
x;  copy  d: 
x:  delete  d: 
x:  dir  d: 
x:  diskcopy  d: 
x:  echo  d: 
x:  ed  d: 
x:  endcli  d: 
x:  info  d: 
XI  list  d: 
x:  makedir  d: 
x:  newdi  d: 
x:  rename  d: 
x:  run  d: 
x:  type  d: 
cd  sys: 

assign  c:  ram:c 
assign  d:  c:delete 

Remember,  this  set  ofcomvtands  goes 
between  the  LoadWb  and  endcli  lines  in 
the  normal  startup-sequence  file.  If  you 
change  your  mind  and  don't  want  to  mod- 
ify the  file,  press  ESC-Q  followed  by  RE- 


TURN; ED  returns  you  to  the  CLI  without 
changing  anything.  To  save  the  modified 
file  to  disk,  press  ESC-X  followed  by  RE- 
TURN. After  the  file  is  resaved,  ED  re- 
turns you  to  the  CLI  protnpt.  To  test  the 
new  startup-sequence  file,  reboot  the 
computer  by  pressing  CTRL-Lefl  Amiga- 
Right  Amiga.  It  takes  about  a  minute  to 
copy  the  com7nands  shown  above.  Once 
the  process  is  finished,  all  of  the  copied 
commands  are  instantly  available  in  RAM 
(if  this  doesn't  work,  reload  startup- 
sequence  into  ED  and  check  for  typing 
mistakes). 

The  first  command  line  following 
ECHO  copies  the  COPY  cotnmand  itself 
into  RAM  so  the  computer  can  copy  sub- 
sequent commands  without  accessing  the 
disk  each  time.  The  next  three  lines  sim- 
plify your  typing  job:  The  first  ASSIGN 
command  tells  the  computer  to  substitute 
the  characters  ram:c/copy  wherever  it 
sees  the  characters  x:.  The  second  AS- 
SIGN creates  another  short  alias  (d:) 
which  stands  for  the  pathname  ramie.  The 
CD  command  changes  the  current  directo- 
ry to  SYS:C  so  you  won't  need  to  specify  a 
subdirectory  for  every  file  you  want  to 
move.  These  three  shortcuts  let  you  abbre- 
viate all  of  the  remaitiing  COPY  com- 
mands (the  command  x:  endcli  d:  becomes 
the  equivalent  of  ram:c/copy  sys:c/end- 
cli  ram:c,  and  so  on). 

Thus,  each  line  beginning  with  x: 
causes  the  computer  to  copy  a  single  Ami- 
gaDOS command  to  the  RAM  disk.  Of 
course,  you  can  delete  commands  from 
this  list,  or  add  others  if  desired.  The 
command  ASSIGN  C:  RAM:C  tells  the 
computer  to  use  the  C  directory  in  the 
RAM  disk  as  its  command  directory.  From 
this  point  on,  the  Amiga  searches  the 
RAM  disk  when  you  tell  it  to  execute  an 
AmigaDOS  command.  The  final  ASSIGN 
command  isn't  really  necessary,  but 
shows  how  to  create  a  shorthand  name  for 
an  often-used  command.  In  this  case, 
we're  creating  d:  as  a  synonym  for  DE- 
LETE. Once  this  is  done,  you  can  delete 
the  file  TEST  by  typing  either  DELETE 
TEST  or  D:TEST.  This  can  be  done  for  any 
command,  using  whatever  shorthand  you 
like.  The  command  sequence  shown  here 
is  adapted  from  an  example  in  COM- 
PUTEl's  AmigaDOS  Reference  Guide, 
which  explains  this  and  many  other  Ami- 
gaDOS topics  in  detail. 


HELP  For  Atari  XL  And  XE 

I  have  an  Atari  800XL  and  would  like  to 
know  how  to  read  the  HELP  key. 

R.E.  Brock 

The  status  of  the  HELP  key  can  be  deter- 
mined by  PEEKing  location  732  on  the 
Atari  XL  and  XE  computers.  If  the  HELP 
key  alone  is  pressed,  this  location  returns 
a  value  of  17;  when  SHIFT  and  HELP  are 
pressed  simultaneously,  it  contains  81. 


12     COMPUTEl     April  1936 


TAP  THE  POWER 

of  the  Commodore  128 


By  the  author  of 
Machine  Language 
for  Beginners  and 
Second  6oo/r  of 
Mactiine  Language 


128  Machine  Language  for  Beginners 

Richard  Mansfield 

One  of  the  bestselling  computer  books  ever  has  now  been  completely  revised  for  the  Commodore  128. 
Most  commercial  software  is  written  in  machine  language  because  it's  far  faster  and  more  versatile  than  BASIC. 
This  new  edition  of  Machine  Language  for  Beginners  is  a  step-by-step  introduction  to  8502  machine  language 
programming  on  Commodore's  128  computer. 

The  book  includes  everything  you  need  to  learn  to  effectively  program  the  128:  numerous  programming 
examples,  memory  management  tutorials;  a  complete  description  of  the  many  Kernal  routines  and  other  new  128 
features;  numerous  hints  and  programming  techniques;  and  a  dictionary  of  all  major  BASIC  commands  and  their 
machine  language  equivalents.  It  also  includes  a  high-speed,  professional-quality,  label-based  assembler, 
optimized  to  take  advantage  of  the  speed  and  extra  memory  of  the  128. 
0-87455-033-5 

$16.95 

Like  the  other  top-quality  books  from  COMPUTEI,  128  Machine  Language  for  Beginners  brings  you  ready-to-use 
information  in  a  clear,  lively  style  that  makes  learning  easy  and  enjoyable,  whether  you  are  a  beginner  or  an  ad- 
vanced computer  user. 

An  optional  disk  is  also  available  which  includes  the  assembler  and  example  programs  in  the  book.  The  128 
LADS  Disk  is  fully  tested  and  ready  to  load  on  the  Commodore  128.  It  costs  only  Si  2.95  and  saves  you  hours  of 
typing  time. 

Order  your  copy  of  728  Machine  Language  for  Beginners  and  the  LADS  Disk  today.  Call  toll  free  1-800-346-6767 
{in  NY  1-212-887-8525)  or  mail  your  payment  (plus  $2.00  shipping  per  book  or  disk)  to  COMPUTE!  Books.  PO 
Box  5038,  F.D.R.  Station,  New  York,  NY  10150. 


COMPUTE!  Publications Jnc,  ffi 

One  o(  trie  ABC  Publishing  ComDonies  y^^^^ 


825  7th  Avenue,  6lh  Floor.  New  York,  MV  iOOl^S 

PMWnan  O*  CCWVUL  COWUTfr,  G<a*n»  caWVTP'tGortfl*  Ow.  CXDfcPU^P  Soot.  *Kt  CCMPUTfi 


*«*e  AcOicotioit 


COMPUTE!  books  are  available  in  the  U.K.,  Europe,  the  Middle 
East,  and  Africa  from  Hoit  Saunders,  Ltd.,  1  St.  Anne's  Road,  East- 
bourne, East  Sussex  BN21  3UN,  England  and  in  Canada  from  Holt, 
Rinehart,  &  Winston,  55  Homer  Avenue.  Toronto,  ON  M8Z  4X6. 


THE  CMO  ADVANTAGE  HOME  COMPUTERS 


THE  BEST  PRICES! 

Next  day  shipping  on  all  in  stock 
items, 

.-'  Free  easy  access  order  inquiry. 

I'  Orders  from  outside 

Pennsylvania  save  stale  sales 
tax. 

Free  technicia!  support  with  our 
laclory  trained  technical  staH. 

There  is  no  limit  and  no  deposit 
on  CO.D.  orders. 
There's  no  extra  charge  (or  using 
your  MasterCard  or  Visa.  Vour 
card  is  not  charged  until  we  ship. 

No  waiting  period  (or  cashiers 
checks. 

We  accept  purchase  orders  from 
qualified  corporations.  Subject  to 
approval. 

Educational  discounts  available 
to  qualified  institutions, 

FREE  CATALOG  MEMBERSHIP 


CALL  TOLL-FREE 
1-800-233-8950 

Educational  Institutions 
Call  Toil-Free 

1-800-221-4283 

CUSTOMER  SERVICE 

&  TECH  SUPPORT 

1-717-327-1450 
Dept.  A204 


MAILING  ADDRESS 


Computer  Mail  Order 
Dept.  A204 

477  East  Thirid  Street 
Williamspori,  PA  17701 

"^ 

MEMBER  DIRECT  MARKETING  ASSOCHTICH 

CREDIT  CARDS 


SHIPPING  °^°"^ 

Add  3%,  minimum  $7.00  shipping 
and  handling  on  all  orders.  Larger 
shipments  may  require  additional 
charges. 

All  items  subject  to  availability  and 
price  change. 

Returned  shipments  may  be  sub- 
ject to  a  restocking  fee. 


CANADIAN  ORDERS 


1-800-268-3974 

Ontario/Quebec 

1-800-268-4559 

Other  Provinces 

1-416-828-0866 

In  Toronto 

TELEX:  06-218960 

2505  Dunwin  Drive, 

l\/lississauga.  Ontario 

Canada  L5L1T1 

All  prices  shovi/n  are  tor  U.S.A. 

orders. 

Call  The  Canadian  Office  for 

Canadian  prices. 


GRAPHICS 


APPLE 

APPLE  Mb...... CALL 

APPLE  lie CALL 

MaclNTOSH CALL 

lie  LCD  Display CALL 

ATARI 

eSXE  (e4K| „ CALL 

1 30XE   (1 38K| CALL 

S20ST  I512K) CALL 

8(MXL  64K CALL 

1010  Recorder S49.99 

1050  Dish  Drive CALL 

1020  Printer $29.99 

1027  Leller  Oualily  Primer S129.00 

1030  Direct  Connect  lulodem $59.99 

COMMODORE 

C128  I^ompiller J2B9.00 

C1571  (Bisk  Drive  tor  C12e) %2MM 

f\wa  (RGB  13"  Mmitiir  lor  C1Z8 CALL 

C167D  (Modem  lor  C128) S179.II0 

C64  Compuler CALL 

C1541   Disk  Drive $199,00 

C1530  Dalasetle $39.99 

Cia02  Color  Monitor $189.00 

C1660  Aulo  Modem $59.99 

DPS  not  Daisy  Prinlei $339.00 

Comrex  220  (C64  Interface) $89.99 

■Polaoid 

Palelie $1399.00 

Power  Processor $22900 

lllumlnaled  Slide  Mounter S39.99 

Polacolor  2  Pack  (ilm $18.99 

CURTIS  POWER  STRIPS 

Diamond  SP-1 $32.99 

Emerald   SP-2 $39.99 

Sapphire  SPF-1 $52.99 

Ruby  SPF.2 S59.99 

Sale  Strip  SP-3 --$19.99 

KENSINQTON 

tJlasierPiece , $99  99 

t^aslerPiece  Plus  - $119.00 


PORTABLE  COMPUTERS 


That  HEWLETT 

mLrM  packaro 

41CV $139  00 

41CX $199,00 

HP  1 1C $49.99 

HP  leC $75.99 

HP  15C $75.99 

HP  16C - $89.99 

HPIL  Module - S98.P9 

HPIL  Casselie  or  Printer $359.99 

Card  Reader ,$1-^.99 

Extended  Funcsion  Modulo $63.99 

Time  Module $63.99 

W*  stock  Iha  full  11ns  at 
HP  calculator  pri^ductt 

NEC 

PC-3401    LS CALL 

PC-e201  Portable  Computer.. ..$319.00 

PC-a231  Disk  Drive S599.00 

PC-S221A  Thermal  Pnnlers $149  00 

PC.8281A  Daia  Recorder     $99  99 

PC.8201-06  SK  RAM $79,99 

SHARF> 

PC.1350 -.$149.00 

PC-1261  1149.00 

PC-1500A,., $169  00 

PC-1250A $8999 

CE-125  Prmler/CasSBlle $129  00 

CE150  Color  Primer  Cas5etl6-$149  00 
CE-161   16K  RAM $12900 


SOFTWARf 


ARTWORK 

Bridgor  4.0  (All) $17.99 

Slrip  Poker  (All) $19.99 

ATARI 

flOMS  FOR  ATARI  ONLY 

8038  Atari  Writer $24.99 

Star  Raiders $4.99 

Missile  Command $4.99 

Defender $4  99 

Galaxian $4.99 

AsleroidS $4.99 

Centipede  $4.99 

BRODERBUNO 

Print  Shop  (All) $29  99 

Graphics  Library  1.  II,  111  (All) $17  99 

Bank  Slroel  Writer  (64.  AT).  $34  99 

Bank  Sireel  Writer  (lle/lIc) $44  99 

BATTERIES  INCLUDED 

Paperclip  (AT.  64/12S) $37  99 

Paperclip  (tie/iic) S44.99 

Homepack  (64«T> $29  99 

D.E.G  A  S    (All) $27  99 

CONTINENTAL  SOFTWARE 

Home  Accountant  (All) $44  99 

Tax  Advantage  (All) 544,99 

Home  Acct./Tax  Bundle  (All) $59.99 

MICROPROS^ 

Kennedy  Approacti  (All) $24.99 

Aeroiel  (All) $24.99 

Silent  Sen/ice  (All),. ,$24.99 

PFS 

File  (64) -.$39  99 

File.  Report.  Graph  (lle/llc).  $79,99 

Write  wrProof  (lle/llc) $79  99 

SPRINGBOARD 

Newsroom  (64) $34.99 

Clip  Arts  (64) $22.99 

Nevasroom  (Apple) , -.--$39.99 

Clip  Arts  (ApptB) $22  99 

SUBLOOIC 

Flight  Simulator  (All) $37.99 

Jet   (64) $37  99 


MODEMS 


DISKETTES 


maxell 

3i/j"  SS/DD  (10) $24,99 

3V:-  DS/DD  (10) .$34-99 

5'A"  MD-1  w/Ha/dC3ses  (10)  .  ..$12  99 

51/4"  MD-2  w/Hardcases  (10) $18.99 

5V«"  MD.2-HD  for  AT  (10) -  ..$39.99 

2'/i"  5  pack  SS/DD/CasB $13  99 

I'JVt'rbaiini. 

5V<"   SS/DD $12.99 

5V."   DS/DD $24.99 

Disk  Analyzer $24.99 


Elephanl  5%'  SS(SD $13,99 

Elephani  S'A'  SS/DO $14  99 

Elephanl  5y4'  DS/DD $16.99 

Elephant  Premium  DS(DO(50)  ...$79.99 
Elephant  3W  SS/DD $29.99 

IBM 

5'A  "  DS/DD  lloppy  (fisks 

(Box  of   10) - $26.99 

DISK  HOLDERS 

INNOVATIVE  CONCEPTS 

Flip' 


n  File   ID $2.99 

Flip'n  File  50 $14  99 

Fiip'n  File  50  w/lock $19  99 

Flip'n  File  100-- $19  99 

Fhp'n  File  Data  Case $9,99 

AMAAAY 

50  Disk  Tub  51A" - $9.99 

30  Disk  Tub  3W Si<.99 


tmncnoR 

Volksmodem.. $69-99 

Volksmodem  300/1200  $18999 

Signalman   Express $259  00 

Lightning  2400  Baud $399,00 

Expressi SI 99  00 

6470  (64/128)  300/1200  Baud.  $139,00 

DIGITAL  DEVICES 

AT300  ■  300  Baud  (Alan) $99  99 

©Hayes 

Smartmodam  300. -$139,00 

Smartmodem  tZDO $38900 

Smartmodom    1200B ,....$35900 

Smartmodem  2400 $599  00 

Micromodem  lie $149  00 

Smart  Com  II $89-99 

Chronograph $199,00 

Transel  1000 $309.00 


Reach   1200  Baud  Hall  Card.  ..$399,00 


^9    SUPRA 

HPP-1064  AD/AA  (C.64) $69.99 

[iNov3tioo|^ 

Smart  Cai  Plus $299  00 

J-Cat $99  99 

rJovalion  2400 $549  00 

Apple  Cat  II $229  00 

212  Apple  Cai  II $379  00 

Apple  Ca)  212  Upgrade $229  00 

Macmodem $279  00 

QUADRAMI 

Ouadmodem  II 

300/1200 $339.00 

300/1200/2400 $499.00 

EVEREX 

1200  Baud  Internal  (IBM/PC).. .$199.00 


DRIVES 


CM 


HARD 

AllOK  Befnoulli  SmglolO CALL 

A210H  Bernoulli  Dual   10 CALL 

A220H  Bernoulli  Dual  20 CALL 

Save  on  Bernouili  Carts CALL 

JK  TAIXaRAlK 
^t  tlCHNOLO«IE3 

25,  35.  60.  80  meg  (PC) 
trom  $1299-00 

IRWIN 

Tape  Backup CALL 

60  Meg  Inlernal  Backup  System  $799  00 

CORE 
AT20-AT72MB CALL 

PRIAM 

40.  60  MB  (PC.  XT,  AT) CALL 

KITS 

10  Meg  wilh  conltoller $379  00 

20  Ueg  with  controller $51900 

FLOPPY 

INDUS 

Alan  GT    $199.00 

C.64  /12B  GT $199  00 

SDl  C.64  Single $219.00 

SD2  C-64  Dual $469-00 

isnaan 

320K  SW  (PC)  $119  00 

TEAC 

320K  5'A" SI  19  00 


f       ^^fe^.^ 


MONITORS 


Video  300  Green $119.00 

Video  300A  Amber $129.00 

Video  310A  Amber  TTL $159.00 

Color  300  ComposilB $169.00 

Color  600  Hi-fles.  RGB $399.00 

Color  710  Ullra  Hi-fles $439-00 

Color  72?  Dual  Mode $529.00 

MAQNAVOX 
8562  RGByComposrle $279.00 

)Vf;c 

JB1205A $79.99 

JB127DG/1275A (ea.)  $99.99 

JBI280G  TTL $129,00 

JB12B5A  TTL $129.00 

JC146a  RGB $229.00 

JC1225  Composite $179.00 

JC1401   Multi  Sync  RGB $549.00 

rHINCXTDN 

MA)(-12E  Amber $179.00 

HX-9  9"  RGB $46900 

HX-9E   Enhancad $519,00 

HX-12   12"  RGB $469-00 

HXI2E  Enhanced $559.00 

SR-12  Hi  Res $59900 

SR-12P   Prolessiunal $639,00 

115  12"  Green $119  00 

116  12"  Ambef $129  00 

121  TTL  Green .   $139  00 

122  TTL  Amber $14900 

610  510x200  RGB $NEW 

620  640x200  RGB SNEW 

630  640x200  RGB $NEW 

640  720x400  ffGB $NEW 

QL1AI.)IW1| 

B400  Quadchrome  I $499.00 

8410  Quadchrome  II $339.00 

8420  Amberchrome $179  00 

8500  Quad  Screen $1449.00 

ZVM  1220  Amber ,..$99,99 

ZVM   1230  Green $99,99 

ZVM  1240  IBM  Amber $149.00 

ZVM   135  RGB $459.00 

ZVM   1330  RGB $459.00 

ZVM  1360  RGB  CALL 

ZVM  1380  E  G  Comp CALL 


INTERFACES 


Mulli  iro  (Apple  IIJ $159,00 

m'turmfus 

Graphcard $79-99 

Ssnall  Card _ $99  99 

Microftuffer  11  + , $169.00 

Microbufler  32K $189.00 

QUADHAM. 

Microlazer (rem  $139.00 

Elazer  (Epson).,. (rem    $79.99 

^Oronge  micro 

Grappler  CD  (C64| $89.99 

Qrappler  +  (Apple) $89.99 

Grappler  16K*  (Apple) $159.00 

DIGITAL  DEVICES 

Ape  Face  (Atari) -....-,- $45.99 

U-Pnn!  A  (Alari) $54.99 

U.AIB/Buller  (A!ari( $74.99 

U-Call  Interlace  (Alan) $39.99 

U-Prinl  C  (C64) $49.99 

P-16  Pnni  Buller $74.99 

U-Prmi  16  apple  lie $89  99 


PRINTERS 


Canon 

A40.A50,A55 CALL 

LBP-eAl    Laser CALL 

^CITIZEN 

MSP-IO  (80  col) $279,00 

MSP-15  (132  col.) $389.00 

MSP.20  (80  col.) $349,00 

MSP-25  (132  col.) $509.00 

crroH 

PfOWriler   7500 $169-00 

Prownler   1550P $349.00 

Starwriler    10-30 $399.00 

3500  Tri  Printer $149900 

corona 

Lazer  LP-300 $2799.00 

DIABLO 

D25  Daisywheel $549.00 

635  Daisywheel $89900 

OeolF  Daisywheel .CALL 

d*isvwriter 

200Q $699.00 

EPSON 

Homewriler  10.  LX-80 CALL 

FX  85-  FX.2e6.  RX-100,  JX-80 CALL 

DX-10.  DX.20.  DX-35 CALL 

SQ-2000.  HiBO.  HS-80.  AP-BO CALL 

LaaOO.  LQ-IOOO,  LQ1500 CALL 

6000  Letter  Quality CALL 

6100  Letter  Quality CALL 

6200  Letter  Quality CALL 

3300  Letter  Oualilv CALL 

5510  Dot  Matrix CALL 

LEGEND 

808  Dot  Matrw  100  ops $179.00 

lOBO  Dot  Matrix  100  cps $259  00 

1360  Dot  Matrix  130  Cps $289,00 

1385  Dot  Malfix  165  cps $33900 

Vfc'C 

3000  Series $779.00 

800O  Series $1099. CM 

ELF  360 , $399,00 

Pinwritet  560 - $999,00 

OigiMTA 

182.  183.  192.  193.  2410,  84 CALL 

Okimale  10  (Specify  C64:Alan)$l  89.00 
Otomale  20  (IBM) CALL 

Panasonic 

KX1080 NEW 

KX1091 $259.00 

KX1092 $389,00 

KX1592 $469.00 

KX1595 $659.00 

Quadjol $399.00 

Quad  Laser ..-CALL 

^SJiyER-REED 

500  Lflller  Quallly- $279-00 

550  Letter  Quallly $419.00 

800  Letter  Quality $699.00 

SG-lOA   (Alan) CALL 

SG-IOC  (CS4  Interface) .„,CALL 

SB/SD/SG/SR  Series CALL 

Powenype  Letter  Quality CALL 

Texas  Instruments 

TIB50 $529.00 

TIB55 $639.00 

TI865 $799.00 

TOSHIBA 

1340  (80  column) $389,00 

P341  (132  column) $799.00 

P361  (132  column) S1049.0Q 


SOFTWARE  FOR  IBM 


ANSA  SOFTWARE 

Paradox $549.00 

ASHTON-TATE 

Framework  II $389.00 

dBase  III   Plus $389.00 

BORLAND 

Lightening $54.99 

Sidekick  (unprotected) $49.99 

Rellox.-- $54.99 

Newspack - $54,99 

CENTRAI.  POINT 

Copy  II  PC-Backup $29.99 

DECISION  RESOURCES 

CharlfflastBr $229.00 

Sfgnmastor  $169.00 

Diagram  Master $219,00 

FIFTH  GENERATION 

Fast   Back 99.99 

FOX  AND  QELLER 

OuickcodB  III - $169.00 

FUNK  SOFTWARE 

Sideways $44.99 

HARVARD  SOFTWARE  INC. 

Total  Preiocl  Manager $269.00 

INFOCOM 

Cornerstane $279,00 

LIFETREE 

Volkswnlur   III $159.00 

UVINO  VIDEOTEXT 

Think  Tank $109.00 

Beady $64.99 

LOTUS 

Sympdory CALL 

I-2-3 -- CALL 

MECA  SOFTWARE 

Managing  Your  Money  2-0 $99,99 

MICROPRO 

Easy $94.99 

WordStar  2000 $239.00 

WordStar  2000-1- $289.00 

WordStar   Prolessional $199-00 

MICRORIM  SOFTWARE 

H  Base  4000 $249.00 

R  Base  5000 $389.00 

Cloul   2.0 $129.00 

MICROSOFT 

Flighl   Simulator $34.99 

MulliPlan $129,00 

Word - $229-00 

Mouse $139-00 

MICROSTUF 

Cfosslalk  XVI $89  99 

Crosstalk  Mark  IV $14900 

Reniulu  $89,99 

MULTIWATE 

Mulli  Male  Word  Proc $219,00 

Advantage $289  00 

On  File $89.99 

Just   Wrile $89-99 

NOUNEMON 

Inluit - $69-99 

NORTON 

Norton  Utilities  3.1 $59.99 

ONE  STEP 

Gull'!.  Bfcil -- $37-99 

PFS:IBM 

PfOOl $59,99 

File/Grnph lea). $79  99 

RelJOrt $74.99 

Wrilu/Prool  Combo $79.99 

PROFESSIONAL  SOFTWARE 

Wnte-N-Spell $89.99 

THE  SOFTWARE  QRQUP 

Enalile $329,00 

SATELUTE  SYSTEMS 

Word  Pertect  4.1 $219. tx) 

SORCIH/IU> 
Account  ing 

AP/AR/GUINV/OE (ea)   $299.00 

SuperCalc  III $199. (X) 

EasyWriler  II  System $199.00 

Super  Proiscl $199.00 

SPI  SOFTWARE 

Open  Access $379,00 

SUBLOQIC 
Jel -- $37  99 


^^^ 


IBM  PC  SYSTEMS 

Conflgurad  to  your  ■poclflcallon*. 

Call  for  Best  Price! 

IBM-PC,  IBM-XT,  IBM-AT 


PC-I3e  Series,  PC-14a  Series,  PC-16a 
Series,  PC- 160  Series.  PC-t71  Series. 
AT-200  Series CALL 

9 SANYO 

MBC  550-2.  MBC  5552.  MBC  675  Por- 
labte.  MBC775.  MBC  880  DesktopCALL 

Salan  (7300).. 7^, CALL 

6300 CALL 

corona 

PPC400  Dual  Portilbty $128900 

PPCXT  to  meg  Portable $1989,00 

PC40O22  Dual  Desktop $1389.00 

PC400-HD2  to  meg $1989.00 

irr  x-TRA       I^ 

256K.  2  Drive  System  CALL 

256K, 10  mug  Hard  l>ri«r  SystBin  CALL 
XP5.  20  rnikj CAIL 


=V»SPER?V 


Speiry-AT -..ab  low  as  $1749.00 

Sjieiry-IT as  tow  as  $2699.00 

Call  for  Specific  Configuration! 
All  Models CALL 

KAmW 

KP-2000  PorlablB CALL 

Kaypro  PC CALL 


MULTIFUNCTION  CARDS 


/isr 

Rampage $379,00 

Six  Pack  Plus.... $229.00 

irO  Plus  II $139.00 

Ad^anlage-AT $399.00 

Graph   Pak/64K $599.00 

MonoGraph  Plus $399.00 

Preview  Mono.... $299.00 

PC  Net  Cards $379  00 

525in  1  On-line $669.00 

5251/12  Remote $579.00 


IRMA  3270 :..::," $879  00 

IRMA  Print $999.00 

IRMA  Smart  Alec $779,00 

Edge  Card $259-00 

Graphics  Edge $239  00 

Magic  Card  11 $16900 

IIKKCI'LKS 

Graphics $299,00 

Color $159.00 

,„^.  lDcA.s>ocu^ 

IDEA   5251 - $58900 

MYLEX 

Tho  Chairman £439  00 

PARADlSh 

Color/Mono  Card $149.00 

Modular  Graptiics  Card $259  00 

Mulli  Display  Caid $219.00 

Five  Pack  C,  S .$129  00 


Bob  Board 


$35900 


Captain  ■  64 $19900 

Graphics   Master $469  00 

Quadport-AT ?r^..  $119.00 

Liberty-AT  (12eK) $349,00 

The  Gold  Quadboard $449  00 

The  Sliver  Quadboard $239,00 

Expanded  Ouadtward $199.00 

Liberty $309.00 

OuadSpnnI  , $499  00 

QuadLink , $399.00 

QuadColor $199.00 

Chronagraph $79.99 

Parallel  Interface  Board $64.99 

INTEL 

PCfJCa087  5MHz 

PCNCS0872  8  MHz CALL 

PCHCB02B7  6  MH2. FOfl 

1010  PC-Above  Board YOUR 

n  10  PS-Above  Board pc 

20t0  AT-AbovB  Board 


Pressing  CONTROL  and  HELP  returns  a 
value  of  145.  The  statement  POKE  732,0 
clears  location  752,  so  you  can  check  for 
subsequent  keypresses. 


Apple  lle/llc  Compaflbllfty 

I'm  interested  in  buying  an  Apple  lie 
computer.  Can  it  use  He  hardware  and 
software? 

Carlos  Aguayo 

The  Apple  Ik  computer  is  basically  an 
Apple  He  that  has  been  redesigned  to  take 
up  as  little  space  as  possible.  To  keep  the 
He  small,  Apple  left  out  the  He's  expan- 
sion slots  (where  additional  hardivare  can 
be  attached),  but  added  a  built-in  5V4-inch 
disk  drive.  They  also  put  the  most  com- 
mon He  expansion  hardware  (SO-column 
video  display,  an  extra  6iK  of  memory, 
and  two  serial  input/output  ports)  on  the 
main  board  of  the  lie.  In  addition,  the  lie 
has  some  features  that  weren't  available 
zuhen  the  He  appeared:  an  advanced 
65C02  microprocessor  and  a  character  set 
called  Mousetext  which  contains  extra 
characters  especially  for  Macintosh-style 
icon-  and  menu-based  programs.  The 
newest  version  of  the  He  (called  Enhanced 
lie)  does  have  these  extra  features;  dealers 
can  upgrade  an  older  lie  at  a  small  cost. 

The  lie  can  run  almost  all  lie  pro- 
grams, as  long  as  no  special  hardware  is 
required.  For  instance,  some  music  pro- 
grams can  communicate  with  instruments 
through  a  MIDI  (Musical  Instrument  Dig- 
ital Interface)  adapter.  This  adapter  must 
connect  to  an  expansion  slot,  which  is 
possible  only  on  a  lie.  Other  programs 
sometimes  expect  a  parallel  I/O  interface 
to  attach  a  printer.  Since  the  lie  has  only 
serial  I/O,  it  can't  run  that  type  of  modifi- 
cation. Although  the  Ik  has  no  expansion 
slots,  its  peripherals  (serial  ports,  disk 
drives,  etc.)  act  like  they  are  built  into 
certain  slots.  Apple  tried  to  select  the  most 
commonly  used  slot  for  each  peripheral 
(printer  in  slot  1,  disk  drive  in  slot  6). 
However,  not  everyone  puts  everything  in 
the  same  place,  and  some  programs  may 
demand  an  unconventional  configuration. 
lie  owners  can  rearrange  the  cards  in 
their  slots  to  run  such  programs,  but  Ik 
owners  don't  have  this  option. 

The  serial  ports  on  the  Ik  generate 
standard  RS-232  signals  which  can  be 
used  to  communicate  with  most  modems 
from  any  manufacturer.  Many  of  the  most 
popular  printers  are  also  available  with 
RS-232  interfaces.  But  the  Ik  does  not 
have  standard  connectors  for  these  ports. 
To  save  space  on  the  back  panel  of  the 
computer,  DIN-type  connectors  are  used 
instead-  as  a  result,  you'll  need  special 
cables  (available  from  Apple  dealers)  to 
attach  serial  peripherals. 

When  it  comes  to  expandability,  the 
He  IS  much  more  flexible  than  the  Ik. 
Almost  any  kind  of  peripheral  can  be 


attached  through  one  of  its  slots,  includ- 
ing parallel  1/0  ports,  MIDI  interfaces, 
hard  disk  drives,  coprocessors,  huge  RAM 
expansion  cards,  and  a  host  of  other  de- 
vices. However,  some  third-party  compa- 
nies have  begun  modifying  the  Ik  to  put 
in  extras  like  additional  memory  and  Z80 
processors  (to  run  the  CP/M  operating 
system,  a  popular  He  add-on).  It's  still 
more  difficult  than  expanding  a  He,  but  it 
can  be  done. 

IBM  PUT  And  GET 

I  own  a  TI-99/4A  and  an  IBM  PCjr. 
Lately,  I've  been  trying  to  convert  some 
programs  from  TI  to  IBM.  I  have  only 
one  problem:  the  PUT  and  GET  graphic 
statements  in  the  IBM  system.  I  really 
don't  understand  them.  Could  you 
show  me  a  way  to  make  an  image  and 
move  it? 

Billy  Mobley 

Firsf,  be  aware  that  IBM  BASIC  has  two 
types  of  GET  and  PUT  statements:  one  for 
graphics  and  another  for  random  files. 
The  syntax  for  each  type  is  different,  so  be 
sure  you're  using  the  graphics  type.  GET 
grabs  the  screen  image  within  a  specified 
rectangle  and  stores  a  copy  of  it  in  an 
array.  PUT  does  just  the  opposite,  putting 
the  image  from  an  array  back  onto  the 
screen. 

Several  important  rules  apply  to 
PUT  and  GET.  Before  using  either  com- 
mand, you  must  be  in  a  graphics  mode 
(SCREEN  1,  for  example);  neither  PUT  nor 
GET  works  on  a  text  screen.  The  array  that 
you  GET  a  shape  into  must  be  a  one- 
dimensional  numeric  array  dimensioned 
to  the  proper  size.  Finally,  you  must  GET 
before  you  can  PUT. 

The  most  difficult  task  is  deciding 
what  size  to  dimension  the  array.  If  the 
array  is  too  small,  it  can't  hold  the  graph- 
ics image,  and  the  program  won't  work. 
The  simplest  solution  is  to  try  a  large  size 
like  DIM  A(500).  It  won't  hurt  to  dimen- 
sion it  larger  than  necessary,  but  this 
method  wastes  memory.  Here's  a  more 
efficient  formula  that  tells  you  the  mini- 
mum required  size  for  the  array: 

INTH4  +  INTWx'rcs + 7)/8)*y  )/prec) 

In  this  formula,  the  variable  x  repre- 
sents the  width  of  the  image  in  pixels:  y  is 
the  height  of  the  image;  res  is  3  for  high 
resolution  and  2  for  medium  resolution; 
and  prec  is  the  precision  of  the  array  (2  for 
integer,  4  for  single  precision,  and  8  for 
double  precision). 

GET  must  be  followed  by  the  screen 
coordinates  of  two  opposite  comers  of  the 
rectangular  image,  and  the  name  of  the 
array.  For  example,  GET  (0,0)-(19,29),A 
grabs  a  20  X  30  pixel  image  at  the  top-left 
corner  of  the  screen  and  stores  it  in  array 
A.  (Of  course,  you  must  first  have  an 
image  on  the  screen.  This  can  be  done 
with  DRAW.)  With  a  high-resolution 


screen  and  a  single-precision  array,  the 
formula  above  gives  23,  so  the  dimension 
statement  would  be  DIM  A(23). 

PUT  is  followed  by  the  coordinates  of 
the  location  on  the  screen  where  the  top- 
left  corner  of  the  image  is  placed,  then  the 
name  of  the  array,  and  an  optional  param- 
eter for  special  effects.  Five  special  effects 
are  available:  PSET,  PRESET,  AND,  OR, 
and  XOR.  If  no  special  effect  is  specified, 
XOR  is  assumed. 

PSET  displays  the  image  exactly  as  it 
appeared  when  GET  was  used.  PRESET 
displays  a  negative  image.  AND  displays 
only  those  parts  of  the  image  that  overlap 
an  image  already  on  the  screen.  OR  super- 
imposes the  image  onto  an  image  already 
on  the  screen.  XOR  is  a  combination  of 
AND  and  PRESET,  reversing  only  those 
parts  of  the  image  that  overlap  an  image 
already  on  the  screen.  The  best  way  to 
understand  exactly  what  these  special  ef- 
fects do  is  to  try  them  yourself.  Using  our 
example,  PUT  (200,W0),A,PSET  displays 
the  image  stored  in  the  A  array  in  the 
center  of  the  screen. 

The  operation  of  XOR  may  seem 
strange,  but  it's  handy  for  animation. 
When  you  PUT  using  XOR  twice  in  the 
same  position,  the  screen  is  restored  un- 
changed. This  allows  you  to  move  an 
image  over  a  background  image,  giving  a 
3-D  effect.  Animation  with  XOR  is  a 
three-step  process:  PUT  the  image  on  the 
screen  with  XOR,  calculate  the  new  posi- 
tion, PUT  the  image  in  the  old  position  a 
second  time  to  erase  it.  By  performing 
these  steps  repeatedly,  the  image  seems  to 
move.  The  following  program  moves  a  ball 
across  the  screen. 

10   SCREEN  1 

20  DIM  ft;ii3) 

30  CIRCLE  !2(5,20)  ,20 

40  PAINT  (20,Z;S) 

50  GET  (0,0;-(40,^-0)  ,  A 

60  CLS 

70  FOR  C"!  TO  100 

80  PUT  (Xl.YD.A  -display  ima 

ge 

90  X2=XI-H: Y2=Y1+1  'calculate 

new  position 
100  PUT  CXI,  YD,  A  'erase  imag 

e 
110  XI=X2:Y!=Y2  'cld=new 
120  NEXT  'repeat 


Simpler  Absent  Printer  Test 

I'm  writing  with  regard  to  the  "Readers' 
Feedback"  item  on  absent  Commodore 
printers,  published  in  the  December 
1985  COMPUTE!.  Another  way  to  avoid  a 
DEVICE  NOT  PRESENT  error  is  to  ac- 
cess the  appropriate  device  (4)  through 
the  command  channel  (15)  and  check 
the  value  of  the  status  variable  ST.  If  ST 
does  not  equal  0,  then  the  printer  is  not 
present.  Here  is  a  short  routine  to 
demonstrate: 

10    OPEN    15,4,1.5:CLOSE    15 
20    IF    STO0    THEN    40 


16     COMPUTEI     April  1986 


AH  the  exciting, 

entertaining,  and 

educational  games, 

applications,  and  utilities 

from  COMPUTE!  magazine 

are  now  available  on  disk 

for  your  Commodore, 

Atari,  Apple,  or  IBM 

personal  computer. 

The  COMPUTE!  Disk 


A  new  COMPUTE!  Disk  is  published 
every  month,  rotating  among  the  four 
major  machines  covered  by  COMPUTE!: 
Commodore  64  and  128;  Atari  400/800, 
XL,  and  XE;  Apple  Il-series;  and  IBM  PC, 
PCjr,  and  compatibles. 

Every  three  months  you  can  receive 
a  disk  with  all  the  quality  programs  from 
the  previous  three  issues  of  COMPUTE! 
that  will  run  on  your  brand  of  computer. 

Like  the  popular  COMPUTE!'s  Ga- 
zette Disk,  the  COMPUTE!  Disk  is  ready- 
to-load  and  error-free.  It  saves  you 
valuable  hours  of  typing  time  and  elimi- 
nates typing  errors. 

With  a  subscription,  you  will  receive 
one  disk  every  three  months  for  a  total 
of  four  disks  a  year — for  only  $39.95. 
That  saves  you  $20  a  year  off  the  single- 
issue  cost. 

Or  you  can  order  individual  issues 
of  the  Disk  for  $12.95  a  disk  plus  $2.00 
shipping  and  handling. 


Remember  to  specify  your  type  of 
computer  when  ordering  the  COMPUTE! 
Disk.  You'll  find  more  information  about 
this  month's  COMPUTE!  Disk  in  this 
issue.  (Note:  You'll  need  the  correspond- 
ing issues  of  COMPUTE!  magazine  to  use 
the  Disk  since  the  disk  will  have  no 
documentation.) 

For  fastest  service  when  ordering  a 
subscription  to  the  COMPUTE!  Disk,  call 
toll  free  1-800-247-5470  (in  Iowa 
1-800-532-1272). 

For  more  details  or  to  order  individ- 
ual issues  of  the  COMPUTE!  Disk,  call 
our  Customer  Service  Department  toll 
free  at  1-800-346-6767  (in  New  York 
212-887-8525). 

Please  allow  4-6  weeks  after  placing  an 
order  for  your  first  disk  to  arrive. 


COMPUTE!  Publications Jnc.  a 


Or«  of  tfie  ABC  PuGiirving  ComCKJAies 

325  7th  Avenue.  6tfi  Froor,  New  Voft;  N¥  ^^tXi^<i 


The  1050  DUPLICATOR  IS  HERE... 


THE  1050  DUPLICATOR:  The  most  powerful 
diskdrive  copy  system  ever  developed  for  ttie  ATARI. 


me  Duplicator 
for  The  New  "Sr 

is  now 
avaitable. 


The  only  Copy  System  You  will 
ever  need! 

What  will  If  do? 

^  The  main  purpose  at  the  Dupllcdior  li  lo  copydltktl  You  will  be 
able  to  copy juit  about  any  disk!  The  copies  you  make  will  run  on 
any  Atari  drive.  The  Duplicator  need  not  be  present  to  run  your 
backup  copies  The  Duplicator  is  fuily  automatic.  Vou  need 
only  insert  source  and  destination  disks.  Custorr)  forr^ats  will 
be  reoa  ontf  in  turn  reproduced  on  the  backup  copy  disk. 
Our  device  will  leptoduce  any  custom  lonrjot  or  tieovlly 
copy  guorded  scheme.  boO  sectors,  double  sectors. 
19  trirough  24  sector  foimot  will  present  no  problBrr\ 
to  the  Duplicator 

*-You  will  tllllhave  tingle  dentlty.  dentlfyand 
one  half,  and  double  dentlty.  Wt)en  you  have  a 
Dupllcotor  installed  in  c  1050  drive  tt\at  drive  will  be 
tumeo  into  true  double  density.  You  will  have  twice 
rt\e  disk  storage.  Your  drive  will  be  compatible  wltti  ottier 
double  density  drives  as  The  Rana  Indus  Percom.  etc. 

HARDWARE  POWER 

Fully  Compatible  with  the  XL  &  New  XE  Series 


••H/g/i  ipeed  read  A  write.  Your  disk  drive  will  read  and  load 

allot  your  software,  saving  wear  and  tear  on  your  drive.  The 

10S0  drive  now  reads  one  sector  at  a  time.  This  Is  slow  and 

Inefficient,  With  the  duplicator  Installed  you  will  be  oble 

to  read  eighteen  sectors  In  the  time  It  takes  standard. 

unentxinced  drives  to  read  one. 

►■  Included  wlltj  every  Duplicator  will  be  uter 

friendly  disk  software,  A  simple,  menu  driven 

progrOiH  will  allow  you  lo  copy  all  of  your 

software.  A  Duplicator  enhanced  drive  will 

be  a  SMART  drive.  We  plan  to  write  rnany 

newand  exciting  programs  thatcan  only  be 

run  on  an  ennonced  drive,  eg.  sending  a 

copy-guarded  disk  over  the  phone.  Since  the 

drive  Is  now  fully  programmable,  fu  ture  upgrades 

can  be  made  avaitable  to  you  on  disks,  should  the 

need  arise,  t^  further  hardware  changes  will  ever  be 

needed.  The  Duplicator  comes  with  a  full  hardware  and 

software  guarantee. 


"^    1      ■   ^    PtoiS2 


_  _  5?  50  f»  shipping  hondlino 
Aam%outtia9USA 
N  Y  stale  ffesicJefift  odd  T'.iS  SoJas  Tax 
'Deoier  jrxjuires  are  tf^come.  con  tcf  quonfify  price  ouofo. 


EASY  5  MINUTE  INSTALLATION 

NO  HARM  TO  YOUR  DRIVE  OR  INCOMPATIBILITY  PROBLEMS  CAN  EVER  ARISE  AS  A  RESULT  OF  THE  INSTALLATION  OF  OUR  DUFIICATOR 

IMPORTANT-  On\y  a  hardwam  device  like  the  DUPIICATOR  can  backup  heavily  copy-guarded 

'  disks.  Don't  be  fooled  by  software  programs  that  claim  lo  do  this. 

DUPLICATING  TECHNOLOGIES  inc.  Sl^ 

Formerly  Ga  rdner  Com  puti  ng  ^ ' ' 

Wie^cholpke..  Suite  302A  Jericho  N.Y.  11 753    ZtZ»».  (516)  333-5805.  5807,  5808  ?„?;^'Und.  (516)  333-5950 

rfffVS-  kVs  accept  Amsricon  Ixpress.  Vl,c.  MasterCard  and  COD  orderi  foralgry  orders  mux  bo  In  U.S.  dollars.  All  personal  eftecdj  aWoiv  M  days  lo  clear  liAosI  Items 
shipped  wittilft  W  Itotifs.  


30  OPEN  1, 4  :PEU:NT#1,  "PRINTER  I 
S  ON"!Ci:,OSE  l.sEND 

40  PRINT  CHRS ( 147 ): "TURN  ON  PR 
INTER": GOTO  10 

If  you  run  this  program  with  the 
printer  off,  it  instructs  you  to  turn  the 
device  on.  Printing  begins  as  soon  as 
the  printer  is  active. 

Jim  Plavecsky 

Thanks  for  this  compact,  all-BASIC  solu- 
tion. In  programs  that  open  disk  files  or 
use  att  RS-232  device  (usually  a  modem), 
you  may  want  to  perform  this  check  at  the 
very  beginning,  before  you  perform  any 
other  OPEN  statements.  The  statement 
CLOSE  15  closes  all  other  channels  in 
addition  to  the  command  channel,  termi- 
nating any  RS-232  communications  and 
disconnecting  (but  not  really  closing)  any 
open  disk  files. 

Emphasized  Tl  Charocter  Set 

The  custoni  character  set  given  for  the 
Commodore  64  on  pages  108-109  of 
COMFUTEi's  January  1986  issue  can  be 
used  on  the  TI-99/4A  with  only  slight 
modifications.  Since  that  character  defi- 
nition data  is  listed  in  hexadecimal  for- 
mat, it  can  be  read  as  a  pattern-identifier 
string  and  assigned  with  the  CALL 
CHAR  statement  (see  page  11-76  in  the 


TI  User's  Reference  Guide).  Each  line  in 
the  Commodore  character  set  listing 
contains  data  for  a  single  character  plus 
a  checksum  value  at  the  end  of  the  line. 
To  convert  the  data  in  each  line  to  a  16- 
character  pattern -identifier  string,  type 
in  the  first  eight  two-digit  hexadecimal 
numbers  (spaces  are  left  out,  of  course). 
In  the  first  line,  for  instance,  the  result- 
ing string  could  be  used  with  a  CALL 
CHAR  statement  to  redefine  the  @ 
character.  To  create  the  new  character 
set,  first  enter  this  program: 

100  FOR  L=l  TO  94 

110  READ  0$ 

120  CALL  CHAR(L+3  2,C5> 

130  PRINT  CHR$(L+32); 

140  NEXT  L 

150  GOTO  150 

Next,  you  must  enter  a  series  of 
lines  containing  DATA  statements. 
Each  DATA  statement  represents  the 
data  for  one  character  in  the  form  of  a 
16-character  pattern  identifier  string. 
For  example,  the  first  DATA  line  would 
look  like  this: 
500  DATA  7CC6DEDECOC07800 

Here  is  how  to  enter  all  of  the 
DATA  lines. 

lines   500-SOO       Use  data  from  line 
7108-71F8  (defines 


ASCII  characters  33-63) 
line     810  Use  data  from  line  7000 

(ASCII  64> 
lines  820-1070     Use  data  from  lines 

7208-72D0  (ASCII 

65-90) 
line     1080  Use  data  from  line 

70D8  (ASCII  91) 
line     1090  Use  OOC06O3018OC060O 

as  data  (ASCII  92) 
lines   1100-1110   Use  data  from  lines 

70E8-70F0  (ASCII 

93-94) 
line     1120  Use  OOOOOOOOOOOOOOFF 

as  data  (ASCII  95) 
line     1130  Use  data  from  line  7200 

(ASCII  96) 
lines   1140-1390  Use  data  from  lines 

7008-70DO  (ASCII 

97-122) 
Unes   1400-1420   Enter  data  from  lines 

72D8-72E8  (ASCII 

123-125) 
line     1430  Enter  000020745C080000 

as  data  (ASCII  126) 

The  result  of  your  effort  will  be  an 

emphasized  font  with  true  lowercase. 

John  Hedstrom 

Thank  you  for  your  suggestion. 


18     COMPUni      April  1986 


HOTWAR^r^ 


Software  Best  Sellers 


ThU 
Month 


Last 
Month 


TH19 


Publisher 


Rftmarks 


Entertainment , 


1. 

2. 
3. 

4. 

5. 


4. 
3. 

2. 

1. 


Jet 

Silent  Service 

Ultima  IV 

Karaleka 

1^15  Strike  Eagle 


SubLogic 

MicroProse 

Origin  Systems, 

Inc. 

Broderbund 

MicroProse 


Jet  simuJcrfion 
Submarine  simulation 
Fantasy  game 

Action  karate  gome 
Air  combat  simulation 


Education . 

1. 

2. 


4. 
6. 


1 .  Typlryg  Tutor  III 

2.  I^alh  Blasterl 

3.  New  Improved 

MasterType 

4.  I^uslc  Construction  Set 

5.  /  Am  me  C-<S4 


Simon  &  Schuster 
Davidson 

Scarborough 

Electronic  Arts 

Creative/ 

Activision 


Typing  instruction  program 
Introductory  math  program, 
ages  6-12 
Typing  instruction  program 

Music  composition  program 
Introduction  to  the  C-64 


Home  Management , 


t 


Print  Stiop 
Ttie  Newsroom 
Bank  Street  Writer 
Print  Shop  Graphics 

Library  III 
Print  Shop  Graphics 

Library 


Brederbund 
Springboard 
Broderbund 
Broderbund 

Broderbund 


Do-it-yourself  print  shop 
Do-it-yourself  newspaper 
Word  processor 
Upgraded  graphics  library 

1 00  addltionol  graphics 


a. 

Q. 
< 


< 


Systems 


o 

E 

E 
o 

a 


t 

c 
o 

o 


Copyrfght  19B6  by  Billboard  Publlcullom.  Inc.  Compiled  by  ttm  Billboard  Research  DeparltnertI  and  reprlrrted  by  permission.  Data  as  ot  2/1/B6  (enterfalrment)  and  2/B/S6 
(education  and  home  rrxsnagement). 


IT  ALSO  RUNS  ON  64K 


Serious  runners  knowit  takes  more  than  great  running  shoes  to  improve  performance.  It  takes  knowl- 
edge. Now  PuiTia  gives  you  both.  With  the  RS  Computer  Shoe.  The  first  training  shoe  to  combine  advanced 
footwear  technology  with  computer  technology. 

The  RS  Computer  Shoe  has  a  custom-designed  gate  array  bulk  into  its  heel.  This  computer  chip 
records  your  run,  then  communicates  the  results  to  any  Apple  HE,  Commodore  64 
or  128,  or  IBM  PC  computer 
A  software  program  included  with  the  shoe  automatically  alculates  your  time,  distance 
and  calories  expended.  Then  graphically  compares  them  to  past  performances  and  future  goals. 

The  RS  Computer  Shoe  from  Puma.  We're  so  out  front  in  technology  we  put 
computers  in  the  backs  of  our  shoes. 


iin\ 


.fpf.lcijirt(i!itidiniltrurlo(AppkConipur(t.liit  .Commcdorcetjnd  IJSjnmdtmjibofCijiTnimlMtCiiiapijtMSjscott.  [BVIiDdltMPCaitnslainittnilmiriiiolIIIM 


OUR  WORD  FOR  QUAUTT 


NEW  TECHNOLOGIES 

The  Converging  Digital  Universe 


Selby  Boteman.  Features  Editor 


The  winds  of  technological 
change  have  been  blowing  a 
gale  for  the  past  few  years.  And 
the  forecast  shows  no  indication  of 
a  letup.  In  fact,  millions  of  consum- 
ers will  begin  to  reap  a  resulting 
whirlwind  of  new  high-tech  prod- 
ucts for  the  home,  office,  and  class- 
room. Consider  the  following: 

■  A  home  stereo  system  an- 
swers your  phone,  takes  messages, 
and  alerts  you  to  incoming  calls. 

•  With  the  push  of  a  button, 
your  video  film  recorder  captures  a 
picture  from  your  favorite  TV  show 
and  instantly  prints  out  a  still  photo 
for  your  wallet. 

•  Your  20-volume  set  of  ency- 
clopedias, contained  and  cross- 
indexed  on  a  compact  disc  in  a 
player  connected  to  your  computer, 
searches  and  prints  out  37  reference 
sources  on  your  selected  topic  in 
less  than  30  seconds. 

•  The  satellite  dish  in  your 
backyard  automatically  tracks  vari- 
ous communication  satellites  based 
on  the  pattern  of  TV  programs  you 
want  to  watch  each  night.  At  the 
same  time,  your  computer  is  receiv- 
ing and  storing  financial  data  that 
unobtrusively  shares  the  same  in- 
coming satellite  transmission  to 
your  TV. 

•  The  digital  TV  in  your  living 
room  displays  two  small  windows 
on  the  screen  while  you  watch  a 


The  digitization  of  America  is  well 
under  way.  Thanks  to  a  wave  of  new 
consumer  electrotiics  products,  this 
year  more  people  than  ever  will  see 
and  hear  how  the  convergence  of  digi- 
tal audio,  video,  satellite,  telephone, 
optical,  laser,  television,  and  com- 
puter technologies  is  transforming  the 
world.  Yet,  the  phenomenon  is  just 
begimmig. 


program  uninterrupted;  one  win- 
dow shows  the  changing  stock  quo- 
tations, while  the  second  window 
displays  a  program  from  a  different 
channel  or  previews  a  tape  from 
your  videocassette  recorder. 

•  The  computer  image  recorder 
connected  to  your  personal  com- 
puter makes  a  35  mm  slide,  color 
print,  or  overhead  transparency  of 
the  business  chart  or  digital  paint- 
ing you've  just  created. 

Does  any  of  this  sound  far- 
fetched? You'll  be  able  to  buy  prod- 
ucts this  year  that  do  all  of  these 
things  and  more.  If  it  seems  difficult 
to  keep  up  with  the  latest  news 
about  consumer  electronics,  it's  not 
your  fault.  Never  have  so  many 
dramatic  technological  changes 
produced  so  many  new  capabilities 
and  products  in  so  short  a  time. 
What  has  become  strikingly  clear  is 
that  ail  of  these  innovations  share  a 


common  foundation — the  digital, 
microprocessor-based  world  of 
computer  electronics. 

These  changes  have  become  so 
important  to  our  lives  and  our 
pocketbooks  that  market  re- 
searchers are  now  targeting  a  new 
group  of  consumers:  Technologi- 
cally Advanced  Families  (TAFs). 
Could  "yuppies"  eventually  be  sur- 
passed in  importance  by  "taffies," 
households  that  purchase  and  use 
the  latest  computers,  VCRs,  stereo 
TVs,  8  mm  camcorders  (camera  re- 
corders), compact  disc  players,  sat- 
ellite dishes,  and  dozens  of  other 
products?  Consumer  electronics 
manufacturers  and  retailers  believe 
that  these  households  are  the  im- 
portant leading-edge  market  for 
their  array  of  new  products. 

Among  the  catalysts  sparking 
enthusiasm  for  the  latest  in  high- 
tech  gear,  none  is  more  important 
than  the  personal  computer  phe- 
nomenon of  the  past  half-dozen 
years.  Not  only  are  computer  own- 
ers the  bedrock  of  the  TAFs,  but  the 
new  generation  of  16/32-bit  com- 
puters is  powerful  enough  to  work 
with  just  about  any  other  consumer 
electronics  product.  Suddenly,  de- 
vices like  VCRs,  compact  disc  play- 
ers, electronic  keyboards,  and 
camcorders  have  become  computer 
peripherals.  As  these  products  con- 
tinue to  become  more  sophisticated 

April  1966     COMPUTE!     21 


and  flexible,  their  technologies  con- 
verge and  their  capabilities  expand. 
In  the  world  of  consumer  electron- 
ics, the  whole  has  indeed  become 
more  than  the  sum  of  its  parts. 

The  development  of  the  micro- 
computer has  accelerated  an  al- 
ready rapid  evolution,  says  David 
Allen,  president  of  Boston  Media 
Consultants  and  a  writer  specializ- 
ing in  TV  production,  computers, 
videodiscs,  and  videotape.  "They 
come  along  with  greater  speed. 
That's  not  a  function  of  any  interac- 
tivity, that's  just  a  curve  that  the 
computer  industry  and  microelec- 
tronics industry  are  on. 

"Each  development  feeds  the 
next  development  in  a  serendipi- 
tous way  that  makes  succeeding  de- 
velopments faster  to  accomplish," 
says  Allen.  "You  can  really  say  that 
we're  now  to  the  point  at  which 
you  could  almost  create  any  tech- 
nological package  you  could  con- 
ceive of,  if  you  don't  put  a  price 
restriction  on  it.  Nothing  is  techno- 
logically impossible,  in  a  broad 
sense.  But  it  has  to  be  accompanied 
by  some  kind  of  way  to  get  return 
on  investment.  And  that's  what 
slows  things  down  more  than  any- 
thing else  right  now.  It's  market- 
driven,  not  technologically  driven." 

During  the  past  year,  a  parade 
of  new  technologies  has  entered  the 
computer  scene.  The  arrival  of 
MIDI  (Musical  Instrument  Digital 
Interface)  has  opened  the  doors  to  a 
new  world  of  computer-based  mu- 
sic composition  and  performance 
{see  "Making  Music  with  MIDI," 
COMPUTE!,  January  1986).  Laser- 
driven  compact  disc  technology  has 
branched  out  from  stereo  systems 
to  computer  data  storage  and  re- 
trieval. Smaller,  less  expensive  vid- 
eo cameras  and  camcorders  that 
connect  with  VCRs  and  computers 
are  making  inroads  in  consumer 
markets. 

In  addition,  a  new  family  of 
audio/video  hardware  and  soft- 
ware products  has  been  created  to 
take  advantage  of  the  latest  com- 
puters, particularly  the  Commo- 
dore Amiga,  Atari  ST,  and  Apple 
Macintosh. 

It's  appropriate  that  in  this  age  of 
video  one  of  the  most  promising 
fields  of  development  is  com- 
puter control  of  video  images  that 
originate    from   video   cameras, 

22     COMPUTEI     April  1986 


VCRs,  laser  disc  players,  other  com- 
puters, or  TVs  with  video  outputs — 
essentially  any  device  that  puts  out 
a  composite  video  signal.  For  in- 
stance, Commodore  is  releasing 
two  fascinating  video  peripherals 
for  the  Amiga:  the  Genlock,  which 
plugs  into  the  back  of  the  Amiga 
and  mixes  external  video  signals 
with  the  computer's  own  video  out- 
put; and  the  Amiga  LIVE  digitizer 
(formerly  known  as  the  "frame 
grabber"),  which  captures  and  digi- 
tizes an  external  video  image  in  the 
Amiga  itself. 


Commodore /Amiga's  Genlock  accessory 
tucks  beneath  the  rear  of  the  Amiga 
computer  and  permits  sophisticated 
video  image  mixing. 


"Genlock  is  external  to  the 
Amiga  and  externally  mixes  two 
video  sources,  one  of  them  the 
Amiga's,"  explains  Paul  Higginbot- 
tom,  an  Amiga  product  manager  at 
Commodore.  "So  you  take  the 
Amiga's  video  source  and  the  exter- 
nal video  source,  and  you  combine 
them — and  the  audio  as  well. 
Nothing  comes  into  the  Amiga  with 
Genlock.  With  Amiga  LIVE,  a  digi- 
tized picture  is  brought  into  the 
Amiga.  So  one  [Genlock]  is  doing 
superimposing,  and  the  other 
[Amiga  LIVE]  is  actually  taking  an 
image  and  bringing  it  in. 

"They  operate  separately,  but 
you  could  certainly  use  them  to- 
gether," says  Higginbottom,  "You 
may  want  to  take  a  real  image  and 
put  Amiga's  graphics  on  it,  and  dig- 
itize those  back  into  the  Amiga 
again." 

Immediate  applications  for  the 
Genlock  include  on-screen  titling 
for  video  presentations  or  home 
movies,  "electronic  chalkboard"  ef- 
fects similar  to  those  used  for  TV 
sports  analysis,  and  special  video 
effects  achieved  by  mixing  Amiga 


graphics  with  other  video  images. 

At  the  Amiga's  official  unveiling  in 
New  York  last  summer,  artist  Andy 
Warhol  used  a  video  camera.  Gen- 
lock, and  Amiga  LIVE  to  digitize  a 
picture  of  rock  singer  Deborah  Har- 
ry, then  used  a  mouse-controlled 
graphics  program  to  "paint"  the 
video  image  with  new  colors. 
Amiga  LIVE  can  be  used  not  only 
for  special  video  effects  such  as 
these,  but  also  for  video  databases, 
says  Higginbottom. 

"We  don't  just  mean  pretty 
pictures.  If  you're  a  real  estate  agent 
or  an  architect,  or  you  have  a  parts 
list  you  want  to  inventory,  some- 
thing like  that — then  you  can  have 
a  video  inventory,"  he  explains. 
"And  Amiga  LIVE  performs  in  real- 
time, not  like  most  digitizers  you 
see  that  usually  take  anywhere 
from  8  to  30  seconds  to  generate  the 
picture  on  the  screen.  This  is  in 
realtime;  if  you  have  a  movie  cam- 
era, you'll  see  the  image  move  as 
you  move  the  camera." 

Both  the  Genlock  and  Amiga 
LIVE  are  expected  to  be  available  in 
April  or  May,  pending  final  FCC 
approval.  Each  accessory  will  cost 
about  $249.95. 

A  different  video  digitizer  is 
in  the  works  for  the  Atari  ST 
and  should  be  available  by 
the  time  you  read  this.  Hippopota- 
mus Software  is  introducing  the 
Hippovision  Video  Digitizer  this 
spring  for  the  ST  and  plans  to  have 
a  version  available  later  for  the 
Amiga.  (No  price  announced  yet.) 
"Anything  that  produces  video 
signals,  you  just  plug  into  the  [digi- 
tizer] box  that's  connected  to  the 
computer,"  says  Clint  Ballard,  vice 
president  of  engineering  for  the  Los 
Gatos,  California  firm.  "You  press  a 
button  when  you  get  a  picture  you 
like,  and  there  you  have  it.  We'll 
also  have  image  processing  soft- 
ware with  which  you  can  change 
around  the  colors — do  whatever 
you  want  with  it.  This  really  opens 
up  the  graphics  world." 

For  the  Macintosh,  which  has  a 
two-year  head  start  on  the  Amiga 
and  ST,  there  are  already  several 
video  digitizers  and  compatible 
graphics  programs  available.  Mac- 
Vision  from  Koala  Technologies, 
Micro-lmager  from  Servidyne  Sys- 
tems, Inc.,  Thunderscan  from 
Thunderware,  Inc.,  and  a  few  others 


COMPUTERS 


MLUBRAffiU 


COMPUTB!  Offers  you  special  savings  on  tills  set  of  toU'Selllng  titles  for  your  IBfA  PC  antf  PCir. 

Each  book  contains  valuable  tutorials,  prosramming  guides,  personal  and  business 
applications,  and  games.  Together,  the  books  provide  ail  the  up-to-date,  ready-to-use 
information  and  programs  you  need  to  get  the  most  from  your  IBM  personal  computer. 


A  Gfophfcs  Colecltoo 

for  the  BM  PC  and  PC^ 


i>*  *  t»j»w  c<«rAi  !■ 


BASIC 
Programs 

for  ttie 

IBM  PC  and  PCjr 


COMPWTEPs 

TELECOMPUTING 

ON  THE: 


COMPUTEi's  First  Book 
of  IBM 

Edited,  326  pages 
Thirty  of  the  best  games, 
utilities,  grapliics  and  sound 
generators,  and  applications 
for  tlie  IBM  PC  and  PCIr.  A 
disit  is  also  available  wlilch 
includes  programs  In  the  boolc, 
$12.95,  D106BDSK. 
ISBN  0-87455-010-6 
$14.95 


Icons  and  images:  A 
Graphics  Collection  for 
the  IBM  PC  and  PCjr 

Elmer  Larsen,  227  pages 
Ninety-four  short  routines  to 
instantly  enhance  business, 
educational,  and  entertainment 
programs  on  either  the  IBM  PC 
or  PCjr. 

ISBN  0-942386-84-1 
$14.95 


Easy  BASIC  Programs  for 
the  IBM  PC  and  PCjr 
Brian  Fiynn,  359  pages 
Everything  from  games  to 
heme  and  office  applications 
programs  Is  Included  for  the 
IBM  PC  and  PClf. 
ISBN  0-94Z386-SS-2 
St4.95 


COMPUTEI'S 

Telecomputing  on  the  IBM 
Arlan  R.  Levltan 

and  Sheldon  Leemon,  274  pages 
The  ins  and  outs  of 
telecomputing  on  the  IBM  PC 
or  PCjr,  from  selecting  a 
modem  and  evaluating 
terminal  software  to  getting 
online  with  the  major 
information  services. 
ISBN  0-942386-96-5 
$14.95 

ORDER  ALL  FOUR  BOOKS  FOR  $49.95  AND  SAVE  OVER  15%  OFF  THE  RETAIL  PRICE! 

Talte  advantage  of  th«  great  price  savings  and  exceptional  value  of  these  bestselling  books  from  COMPUTE! 

and  order  ttte  four- book  set  today. 

To  order,  call  our  toll  free  customer  service  number,  1-800-346-6767  (in  NY  212-887-8S25)  and  ask  for 
COMPUTEI'S  IBM  Library.  Or,  mail  the  attached  coupon  with  your  payment  to  COMPUTE!  Books,  P.O.  Box  5038, 

F.D.R.  Station,  New  York,  NY  10150. 
You  can  also  order  individual  copies  of  any  of  the  above  books  at  the  stated  retail  price.  Sorry,  no  substitutions. 
LIMITED  TIME  OFFER!  You  must  order  before  May  20  to  receive  your  15-percent  discount. 

r 


Please  send  me  the  books  I  have  selected.  My  payment  is  enclosed. 

Sets  of  COMPOWs  IBM  Library  (lour  botks  per  set)  $49.9S  

COHPUUrs  First  Book  ot  IBM  (OIOS)  SU.95  

COMPUTERS  Telecompullng  ea  the  IBM  (96-Sl  S14.9S  

Easf  BASIC  Piegrms  far  the  IBM  PC  anil  PCjr  (5S-2)  $14.95  


■  Icaas  aail  Images:  A  Graphics  Celleetloa  fur  the  IBM  PC  aat 
PCjr  <84-1i  tU.SS 


Account  No.  , 

Name 

Address  

City 


.  Exp.  Date  . 


All  orders  must  tie  prepaid. 

D  Payment  enclosed  (checl(  or  money  order) 

D  Charge    D  MasterCard    a  Visa   D  American  Express 

Subtotal  

NC  residerrts  add  4.5%  sates  tax  

Sliipping  and  handling  

($2.00  per  book;  S5.00  per  tiook  airmail) 
Total  amount  enclosed  


(reguiredj 


.  State  . 


L 


Please  altw  4-6  weeks  for  deSvery 


.  Zip  . 


36411911 


COMPUTEl  Publicationsjncg 

On©  of  the  ftSC  Pubtahing  Componies 

825  'tn  Avenue,  ath  Ftow.  New  Yoik,  NV  10019 


ACT),  A£04C3t<r4 


COMPUTE!  books  are  available  in  the  U.K.,  Europe,  the  Middle 
East,  and  Africa  from  Holt  Saunders,  Ltd.,  1  St.  Anne's  Road,  East- 
bourne, East  Sussex  BN21  3UN,  England  and  in  Canada  from  Holt, 
Rinehart,  &  Winston,  S5  Homer  Avenue,  Toronto,  ON  M8Z  4X6. 


I'SJiS'-il--''"^'-'-*^"^' 


THE  ST  COMPUTER  UNE 

HMMWATARL 


IT'S  LIKE  GETTING  THE  POWER  AND  SPEED  OF  A  FERRARI 

FOR  THE  PRICE  OF  A  FORD.' 


When  Atari  introduced  the  520ST™, 
we  set  the  personal  computer  industry 
on  its  ear. 

Nobody  had  ever  produced  a  machine 
so  powerful  and  technically  advanced 
for  such  an  incredibly  low  price. 
Nobody  but  Atari  has  done  it  yet. 

The  competition  was  stunned. 

The  critics  wrote  rave  reviews. 

And  consumers  were  ecstatic. 

We  could  have  rested  on  our  laurels^ 
but  we  didn't. 

Instead,  Atari  extended  the  ST  concept 
to  a  new  computer  called  the  1040ST '". 

The  amazing  new  1040ST  is  even 
more  powerful  than  the  520ST  and 
years  ahead  of  all  the  competition  at 
almost  any  price.  The  only  question  in 


MABI  ■ 

COMMODORE  a> 
SMBAr" 

PCATt" 

APPLE® 
Madntosh™ 

APPLE  Uc® 

Price                                 5999 

SI  795 

S4675 

SlSSS 

S1295 

CPU                                 68D0O 
Speed  MHz                      b  11 

63000 
716 

60286 
60 

6B0OO 
7  83 

65002 

1-0 

SlantJard  HAM                 i  MB 

256K 

256H 

5I2K 

128K 

Etandara  ROM                192K 

192K 

6JK 

B4K 

16K 

Numtjef  of  Keys                95 

89 

95 

59 

83 

Mouse                               Yes 

Yes 

No 

Yes 

Oplional 

Screen  Resoiuiion 
(Non-]nteriaced  Mode) 
Color                             «4(1»200 
Monoctirome                640]i4QD 

640K200-" 
6'10ii200'" 

640x200 
72011 350" 

None 
512x342 

560x192 
550x192 

Color  Oulput                     r» 

Yes 

Opliortal 

None 

Yes 

Number  ol  Colors            sw 

4096 

16 

None 

16 

Disk  Drive                        3  5 

3.5- 

5.25- 

35" 

525- 

EuilL-in  Hard  Disk 

(DMA)  Ron                         Tes 

No 

Yes 

No 

No 

Midi  Interface                  Yei 

No 

Mo 

No 

No 

It  ol  Sound  Voices             3 

4 

1 

A 

1 

Attn  520ST  wllh  S12K  RAM.  I7B9. 

'Connecis  to  standard  color  TV  Fot  RGB  coio-  monitof  add  S20D. 
■••  Wild  optional  monocirome  Doafd  (rton  tut-mapped) 
'"Inieriace  Mixie  -  &40):4M 


Fe-f  ari  is  a  registeiflfl  tr^d^mach  of  Fer rjrj  lTal<B  SpA  ino  Fenan  ol 
ArTveFica.  trtc  Foftl  Ls  a  i9g>sTeied  naOefTidFii  o'  Fofd  Motor  CcnM'Hy 
IBM  aj-id  PCAT  ara  ie>gi3iarM  uaaermrks  al  iniamtiKnii  8uiirws] 
MachnAs  Carp  CommodocB  &nd  Amiga  ara  l(ad«nurks  of  Conv 
modort  Ei«tfonK»  HO  A«*».  *»*•  Hi;,  t-nc  MicwiMn  are 
irwlomarks  of  ApcUe  CompuW.  inc  Aiati.  5?DST.  iO«C&T.  ana  ST  ar« 
iradamarks  ol  Atari  Corp 


1986  isn't  which 
company  to  buy 
a  computer 
from,  but  which 
computer  to  buy 
from  Atari. 

At  S799,  the 
520ST  gives  you  512  Kbytes  of  RAM,  a 
high-resolution  monochrome  monitor, 
2-button  mouse,  and  3.5"  disk  drive. 

At  $999,  the  1040ST  gives  you  1024 
Kbytes  of  RAM,  an  ultra  high- resolution 
monochrome  monitor,  2-button  mouse, 
and  a  built-in  double-sided  35"  disk 
drive,  plus  built-in  power  supply.  Both 
the  520ST  and  the  1040ST  can  be  con- 
nected directly  to  your  own  color  TV 
Or  you  can  add  an  Atari  RGB  color  monitor 
to  get  the  sharpest,  most  colorful  images 
possible.  Add  $200  for  color  monitor. 

It's  simply  a  matter  of  choosing  which 
model  best  fits  your  needs. 

And  whether  you  choose  the  520ST 
or  the  1040SX  you'll  be  getting  the 
power  and  speed  of  a  Ferrari  for  the 
price  of  a  Ford. 

In  fact,  you'll  save  hundreds  and  in 
some  cases  thousands  of  dollars  over 
comparable  computers.  Which  is  why 
consumers  are  still  ecstatic.  Why  the ' 
critics  are  still  writing  rave  reviews. 
And  why  the  competition  is  still  stunned. 


AATARI 


® 


POWER  WITHOUT  THE  PRICE: 


make  excellent  use  of  the  Mac's 
high-resolution  monochrome 
graphics.  Smce  the  Amiga  and  the 
ST  each  boast  superb  color  graphics 
as  well  as  high-resolution  modes 
surpassing  the  Mac's,  video  digiti- 
zation hardware  and  graphics  soft- 
ware are  becoming  even  more 
flexible  and  powerful. 

As  computers  grow  more  capa- 
ble of  handling  video  images,  other 
manufacturers  are  gearing  up  to 
take  advantage  of  new  markets  ex- 
pected to  develop.  Toshiba  and  Po- 
laroid have  announced  products 
which  strengthen  the  connections 
among  computers,  photography, 
and  video.  The  two  companies  are 
jointly  introducing  a  new  instant 
video  film  recorder  that  produces 
instant  color  prints  or  slides  from  a 
TV  set  or  monitor  and  has  optional 
RGB  (red-green-blue)  computer  in- 
put. The  recorder  features  digital 
freeze-field  capture,  color  preview 
capability,  and  accepts  standard 
NTSC  (National  Television  Stan- 
dards Committee)  signals. 

The  recorder  captures  and  digi- 
tizes any  image  from  a  TV  screen, 
whether  the  signal  originated  from 
a  broadcast  station,  VCR,  video 
camera,  or  any  other  standard  vid- 
eo device.  When  equipped  with  the 
appropriate  camera,  the  result  is  an 
instant  photo  print  or  35  mm  slide. 
With  the  push  of  a  button,  you 
could  freeze  one  frame  of  your 
home  movies,  your  favorite  rock 
video,  or  a  TV  show,  and  then  in- 
stantly produce  a  color  picture.  The 
recorder  is  expected  to  be  available 
by  midyear. 

Polaroid  is  also  introducing 
this  year  an  improved  version  of  its 
Palette  computer  image  recorder. 
The  Palette  provides  presentation- 
quality  photos  from  computer 
graphics  generated  by  a  wide  vari- 
ety of  computers,  such  as  the  Apple 
II  series  and  the  IBM  PC  family.  It's 
capable  of  handling  image  resolu- 
tions up  to  920  X  700,  depending 
on  the  combination  of  hardware 
and  software.  Almost  all  presenta- 
tion-graphics and  graphics-editing 
software  is  compatible  with  the 
under-$2,000  system. 

Although  few  personal  com- 
puter owners  will  spend 
several  thousand  dollars  to 
buy  such  video  systems  for  the 
home,  the  next  few  years  will  see 

26     COMPUTEI     April  19S6 


dramatic  price  drops  as  technology 
improves  and  costs  decline. 

For  example,  Kodak's  Con- 
sumer Electronics  Division  plans  to 
introduce  a  still  video  system  that 
allows  you  to  select  and  record  in- 
dividual video  images.  The  sys- 
tem's player/recorder  captures 
images  in  realtime  from  any  NTSC 
video  signal  and  stores  up  to  50 
images  on  a  tiny  floppy  disk.  An 
adjunct  to  this  system  is  a  film-to- 
disk  transfer  station  that  may  be 
installed  at  film  processors;  you 
could  have  35  mm  color  negatives 
transferred  to  the  floppy  disk,  then 
view  the  pictures  at  home  on  your 
TV — ordering  regular  prints  later,  if 
you  like. 

Kodak  had  also  planned  to  an- 
nounce a  new  color  video  imager 
for  producing  instant  prints  of  any 
video  image.  However,  a  recent  de- 
cision by  the  U.S.  Supreme  Court 
on  behalf  of  Polaroid  has  forced 
Kodak  to  withdraw  from  the  instant 
photography  business.  Although 
Kodak  had  expected  initial  sales  of 
the  video  imager  to  be  in  commer- 
cial and  industrial  applications,  the 
iong-range  plan  was  to  make  the 
product  part  of  home  computer  and 
video  centers,  according  to  Richard 
D.  Lorbach,  vice  president  of  Ko- 
dak's consumer  division. 

"We  anticipate  that  the  color 
video  imager  eventually  will  be 
used  as  a  home  entertainment  cen- 
ter component,"  said  Lorbach 
before  the  court  decision  was  hand- 
ed down.  "Our  market  research  in- 
dicates that  there  is  significant 
consumer  interest  in  being  able  to 
make  photographs  of  personal  im- 
ages displayed  on  TV  screens." 

This  type  of  video  system  pre- 
sents a  wide  range  of  possibilities. 
For  example,  by  capturing  images 
from  your  home  videos,  you  could 
make  a  slide  show  of  still  shots  or 
produce  prints  or  slides  for  family 
albums.  Computer  artists  could 
take  their  digital  paintings  or  im- 
ages captured  from  a  video  source 
and  create  their  own  sequenced 
video  show.  With  the  appropriate 
computer  software,  text  could  be 
overlayed  on  any  of  the  images. 

There  are  hundreds  of  business 
and  industrial  applications  for  this 
technology.  Rather  than  spending 
thousands  of  dollars  on  outside 
production  of  sales  and  marketing 
presentations,  almost  any  business 


would  have  access  to  high-quality 
video  production.  A  real  estate 
agency  could  take  photos  or  video- 
tapes of  its  properties,  add  textual 
information  on  prices  and  other  de- 
tails, and  then  show  the  resulting 
package  to  their  customers.  Any  of 
the  frames  could  be  turned  into 
glossy  prints  for  the  house-hunters 
to  keep  for  reference.  The  ramifica- 
tions are  virtually  limitless. 

One  of  the  most  important 
developments  in  the  mar- 
riage of  computer  and  vid- 
eo technology  is  the  introduction  of 
digital  TVs — TV  sets  that  convert 
the  incoming  analog  broadcast  sig- 
nal into  digital  form.  Toshiba, 
Sony,  and  most  of  the  other  large 
consumer  electronics  companies 
have  invested  millions  of  dollars  to 
develop  digital  TV.  Exceptionally 
clear  pictures  are  only  one  of  the 
benefits  of  this  research.  Digital 
TVs  also  have  what's  called  PIP 
(picture-in-picture)  capability — 
they  can  partition  the  viewing 
screen  by  opening  separate  "win- 
dows" for  simultaneously  display- 
ing other  video  signals. 

An  example  is  the  26-inch  DT- 
2680A  TV  receiver/monitor  from 
NEC  Home  Electronics.  It  can  si- 
multaneously display  the  picture 
from  the  station  that's  tuned  in  plus 
moving  pictures  from  any  of  three 
auxiliary  video  inputs,  or  color 
computer  graphics  through  the  set's 
RGB  input.  You  can  watch  two 
channels  at  once,  or  a  channel  and  a 
videotape,  or  even  work  with  your 
home  computer  while  watching  TV 
on  the  same  screen. 

The  picture  you'll  be  watching 
is  much  sharper,  too.  Today's  con- 
ventional TVs  offer  approximately 
250  lines  of  horizontal  screen  reso- 
lution, while  the  NEC  digital  TV  is 
capable  of  resolving  up  to  500  lines. 
This  is  actually  more  resolution 
than  is  available  from  broadcast 
signals.  Through  special  filtering, 
the  digital  TV  displays  a  broadcast 
screen  resolution  of  336  lines — the 
best  that's  possible  with  today's 
broadcasts. 

In  addition,  the  NEC  digital  TV 
has  enough  microprocessor-based 
memory  to  store  up  to  three  differ- 
ent still  video  pictures  at  a  time.  By 
pressing  a  button  on  the  remote 
control,  you  can  capture  any  video 
image  and  display  it  as  an  SVi-inch 


O  TVS  BoTipulsr  Eah  Blub® 

/•'—•-•■^-  Recognized  as  the  authoritative  source  for  micro  usersi 

Superior  Performance, 
Practical  Price! 

More  programs,  projects,  ways  to  use  your  micro 
for  home,  hobby,  education,  and  business! 

Select  5  Books 
for  Only  *2~ 


moossus  E  i*«!S 

^y- 

'  >Xt 

^%| 

.,  lu  u=-.u 

_. 

_ji£ii23^LJ 

1831P  1407  r976P 

U>t  $9.95  (paper)  List  $17.95  LliI  $17.95  (paper) 


Free  guide  to 
BASIC  Statements 
&  Commands 


1427P 
Llsl  $12.95  (paper) 


1275 

Llat  $15.95 


Plus  FREE  For  Joining 


7  very  good  reasons  to  join 
The  Computer  Book  Club® 

•  Big  Savings.  Save  20%  to  75%  on  books  sure  to  in- 
crease your  computer  know-how 

•  No-Ris>(  Guarantee.  All  books  returnable  witbin  10  days 
without  obligation 

•  Club  News  Bulletins.  All  about  current  selections- 
mains,  alternates,  extras — plus  bonus  offers.  Comes  13  times 
a  year  with  hundreds  of  up-lo-the-minute  titles  to  pick  from 

•  Automatic  Order.  Do  nothing,  and  the  Main  selection 
will  be  shipped  automatically!  But .  .  .  if  you  want  an  Alter- 
nate selection — or  no  books  at  all — we'll  follow  the  instruc- 
tions you  give  on  the  reply  form  provided  with  every  News 
Bulletin 

•  Bonus  Books.  Immediately  get  Dividend  Certlficales  with 
every  book  purchased  and  qualify  for  big  discounts  of  60% 
to  80% 

•  Extra  Bonuses.  Take  advantage  of  added-value  promo- 
tions, plus  special  discounts 

•  Exceptional  Quality.  All  books  are  first-rate  publisher's 
editions  selected  by  our  Editorial  Board  and  filled  with  useful 
up-to-the-minute  information 


P.O.  Box  80,  Blue  Ridge  Summit,  PA  17214 

Please  accept  my  membership  in  The  Computer  Book  Club*  and  send  the  5 
volumes  circled  beiow,  plus  my  FREE  copy  oi  BASIC  Statements,  Commands  and 
Functions  billing  me  only  $2.95  plus  shipping  and  handling  charges.  If  not  satisfied, 
I  may  return  the  ixioks  within  ten  days  without  obligation  and  have  my  membership 
canceled,  i  agree  to  purchase  4  or  more  books  at  regular  Club  prices  (plus  ship- 
ping/handling) during  the  next  12  months,  and  may  resign  any  time  thereafter. 

1000P  1160  1228P  1275  1295P  1407  1427P  1522  1540 

1718P  1737  1748P  1750P  1811  1831P  1873  1876  1882  1884 

1907  1945  1951  1960  1976P  1993  1997  2627  2648 


Name 

Address- 

City 

State 


-Zip- 


_Phone_ 


Valid  for  new  members  only.  Foreign  applicants  will  receive  ordering  Instructions.  Canada  must 
remit  in  U.S.  currency.  Thl3  order  subject  to  acceplanee  by  The  Computer  Book  Club*  . 

CMPT-486 


(diagonal)  window  within  the  26- 
inch  screen.  Meanwhile,  the  back- 
ground video  image  is  unaffected. 
You  could  freeze-frame  a  fullback 
plowing  through  the  line  while 
watching  the  play  continue  on  the 
main  screen. 

As  might  be  expected,  the  con- 
nection capabilities  and  special  fea- 
tures of  such  a  TV  set  go  far  beyond 
the  few  video  and  audio  plugs 
found  on  even  the  better  current 
sets.  The  NEC  digital  TV  contains  a 
stereo  amplifier  and  stereo  speak- 
ers, three  sets  of  line  video  inputs 
for  VCRs,  video  disc  players,  color 
cameras,  and  home  computers,  and 
an  eight-pin  RGB  input.  Outputs 
include  a  monitor  jack  that  carries 
whatever  is  on  the  screen,  a  TV 
output  that  carries  whatever  chan- 
nel is  tuned,  external  speaker  out- 
puts, fixed  audio  line  outputs  for 
recording,  and  variable  audio  line 
outputs  for  volume-controlled  con- 
nections to  an  external  sound 
system. 

As  NEC  vice  president  Gerry 
Tangney  says,  this  "is  a  taste  of  the 
future  of  home  TV."  The  NEC  digi- 
tal set  is  expected  to  be  introduced 
in  May,  with  the  price  to  be  an- 
nounced soon. 

Another  new  technology  al- 
ready on  the  horizon  is  high-defini- 
tion TV  (HDTV),  an  enhanced 
broadcast  signal  that  offers  1,125 
scan  lines  of  information  instead  of 
the  525  now  used  in  conventional 
American  TV  broadcasting.  This 
would  require  broadcasters  to  up- 
grade their  equipment,  however, 
and  efforts  to  adopt  an  HDTV  stan- 
dard have  reportedly  been  mired  in 
international  and  corporate  dis- 
agreements over  how  to  bring 
about  this  doubling  of  screen 
clarity. 

The  growing  popularity  of  com- 
pact disc  (CD)  audio  players 
has  given  new  impetus  to  the 
development  and  widespread  con- 
sumer distribution  of  their  digital 
data  cousins,  called  CD-ROMs 
(Compact  Disc-Read  Only  Memo- 
ries). Although  these  laser  discs  are 
only  4.72  inches  in  diameter,  they 
are  capable  of  storing  600  mega- 
bytes of  information  on  a  single 
side,  with  an  access  time  of 
seconds. 

The  first  company  out  the  door 
with  CD-ROM  players  in  the  retail 

28     COMPUTEl     April  1986 


market  is  the  Subsystems  and  Peri- 
pherals Division  of  North  Ameri- 
can Philips  Corporation.  Its  CM  100 
disc  player  and  CM  155  controller 
card  works  with  the  IBM  PC- 
compatible  computers  (other  inter- 
faces will  be  announced  this  year). 
Available  with  the  Philips  CD- 
ROM  player  is  Grolier's  The  Elec- 
tronic Encyclopedia,  the  equivalent 
of  a  20-volume  reference  collection 
on  just  about  a  quarter  of  one  side 
of  a  CD-ROM  disc.  Although  the 
initial  purchase  price  of  $1,495  may 
keep  initial  sales  out  of  the  home 
market  in  volume,  the  price  for  CD- 
ROM  technology  is  expected  to 
drop  quickly  over  the  next  couple  of 
years. 


Philips  has  introduced  its  CD-ROM 
drive  which  comes  zvith  Grolier's  Elec- 
tronic Encyclopedia  on  a  compact  disc. 
The  entire  package  sells  for  $1,495. 

Technology  occasionally 
moves  in  mysterious  ways,  and  an 
example  can  be  seen  in  new  prod- 
ucts which  have  taken  advantage  of 
the  popularity — and  intimidation — 
of  word  processors.  Casio's  new 
CW-30  Personal  Typewriter  blends 
the  comforting  familiarity  of  a  type- 
writer with  the  ease  of  use  of  a 
computer  word  processor.  The 
$399.95  hybrid  machine  looks  very 
much  like  a  standard  electric  type- 
writer. But  a  quick  look  at  the  key- 


This  Casio  computer-compatible  elec- 
tronic typewriter  is  a  hybrid — part  type- 
writer and  part  word  processor — that 
can  connect  to  a  computer  to  serve  as  a 
printer. 


board  also  shows  a  set  of  cursor  and 
special  function  keys,  plus  a  15- 
character  liquid-crystal  display 
window  for  editing. 

One  of  the  most  interesting 
features  of  the  Casio  typewriter  is 
that  it's  computer-compatible.  It 
contains  both  a  Centronics- 
standard  parallel  interface  and  an 
RS-232  serial  interface  that  lets  the 
typewriter  become  a  computer 
printer  (plain  or  thermal  paper).  It 
can  be  hooked  up  to  a  300  baud 
modem  for  uploading  and  down- 
loading text  with  a  computer.  It  has 
built-in  pica  and  elite  pitches,  right 
justification,  and  multiple  type 
fonts:  boldface,  underlining,  dou- 
ble-wide characters,  special  sym- 
bols, and  foreign  alphabet 
characters.  It  has  enough  memory 
to  store  two  pages  of  text,  and  with 
an  optional  memory  expander,  up 
to  ten  pages  of  text.  Small  remov- 
able memory  cards  let  you  save  and 
store  text.  Casio  obviously  hopes  to 
capture  the  best  of  both  worlds, 
typewriters  and  word  processors,  at 
the  same  time  it  is  attracting  those 
who  don't  want  to  give  up  type- 
writers, but  are  fearful  they're  being 
left  behind  by  word  processors. 


The  Magnavox  VideoWriter  is  an  $800 
dedicated  word  processor  aimed  at  the 
home  market. 

Magnavox  has  taken  a  differ- 
ent approach  with  its  new  Video- 
writer,  a  dedicated  home  word 
processor  that  contains  its  own  soft- 
ware, printer,  spelling  checker,  and 
18-line  monitor  (smaller  than  a  reg- 
ular computer  screen,  but  larger 
than  most  portable  computers).  The 
$800  Videowriter  has  a  memory  ca- 
pacity of  approximately  70  pages  of 
text,  automatically  stored  on  stan- 
dard 3V2-inch  disks.  While  dedicat- 
ed word  processors  have  been  used 
in  offices  for  years,  it's  unusual  to 


see  such  a  product  for  the  home 
market,  especially  considering  the 
number  of  people  who  buy  multi- 
purpose computers  primarily  for 
word  processing. 

Computers  are  converging 
with  yet  another  technology,  too — 
telephones.  For  example.  Commo- 
dore is  planning  to  introduce  its 
new  1100  AnswerMate,  a  program- 
mable computer-controlled  tele- 
phone answering  machine  for  the 
Amiga.  The  AnswerMate  connects 
to  the  Amiga's  RS-232  port  and  to  a 
telephone.  Not  only  does  it  play 
back  your  taped  greetings  and  re- 
cord messages,  but  it  also  can  re- 
spond with  messages  generated  by 
the  Amiga's  built-in  synthesized 
voice.  And  multitasking  software 
included  with  the  AnswerMate  lets 
it  answer  phone  calls  while  you're 
busy  using  the  computer  for  other 
things.  (Price  to  be  announced.) 


Commodore's  AnswerMate  connects  to 
the  Amiga  computer  to  serve  as  a  tele- 
phone answering  machine  that  can  make 
use  of  the  Amiga's  multiprocessing  and 
synthesized  speech  capability. 


There  is  scarcely  an  area  of  con- 
sumer electronics  which  is  not 
moving  either  directly  or  indi- 
rectly toward  the  personal  com- 
puter, either  as  a  peripheral  or  as  a 
microprocessor-based  stand-alone 
device.  Even  the  ways  in  which 
computer  users  receive  their  soft- 
ware may  be  undergoing  change  in 
the  future. 

For  example,  Cauzin  Systems, 
with  backing  from  Kodak,  has  de- 
veloped the  Softstrip  system  of 
information  storage.  Data  is  en- 
coded on  a  strip  of  paper  in  a  format 
similar  to — but  more  compact 
than — the  familiar  bar  codes  found 


on  consumer  products.  One  strip, 
which  typically  measures  9V2  by  % 
inches,  can  store  up  to  5,500  char- 
acters (about  three  typewritten 
pages).  The  strips  can  be  printed  on 
ordinary  paper  and  are  read  by  an 
electro-optical  scanner.  Connected 
to  a  computer,  the  scanner  reads 
the  coded  strips  and  transfers  the 
data  into  memory  for  later  storage 
on  disk. 

Further  examples  of  converg- 
ing electronics  technologies  abound 
in  virtually  every  field.  The  emer- 
gence of  stereo  TVs  and  VCRs,  cou- 
pled with  a  stereo-capable 
computer  such  as  the  Amiga,  obvi- 
ously opens  new  possibilities  for 
audiophiles.  Interactive  video, 
spurred  by  improvements  in  laser 
discs,  is  another  rapidly  evolving 
technology  with  a  connection  to 
personal  computing.  Radio  signals 
relayed  by  satellites  can  carry  data 
accessible  by  computer  users.  Use 
of  electronic  mail  systems  is  expect- 
ed to  jump  from  less  than  a  billion 
messages  a  year  today  to  more  than 
20  billion  by  the  end  of  the  decade, 
ultimately  becoming  a  major  ser- 
vice as  common  as  the  telephone 
and  the  U.S.  mails. 

As  media  consultant  David  Al- 
len noted  earlier,  technology  is  ca- 
pable of  virtually  anything  today; 
but  the  successful  marketing  of  an 
idea  is  the  key  to  its  success.  In  the 
forseeable  future,  neither  technol- 
ogy nor  the  marketplace  shows  any 
signs  of  slowing  down.  & 


Attention  Programmers 

COMPUTE!  magazine  is  currently 
lool<ing  for  quality  articles  on 
Commodore,  Atari,  Apple, 
and  IBM  computers  (including 
the  Commodore  Amiga  and 
Atari  ST).  If  you  have  an 
interesting  home  application, 
educational  program, 
programming  utility,  or  gome, 
submit  it  to  COMPUTE!,  P.O. 
Box  5406,  Greensboro,  NC 
27403.  Or  write  tor  a  copy  of 
our  "Writer's  Guidelines." 


jjjgjgfpi 


23  PARK  ROW,  NEW  YORK.  H.Y.  10038 

™f??f?  800-22 1-8 180  E,j^^^" 


IIJM  XT  COWATIIU  coMnnit 

Hini  tMxio  ^iviDiu  moxm 

Hivft  tMIOM  ItH  HOOfM 
uCHOil'»<'0  C4J  111  MOHM 

XTKM  ukx'll-  MOMlfdA 
TAXAM  210  U-MONtlOir 


^649" 
>499" 
'ST!" 

'W 
W" 

W 
T79" 


nu  HOOMCi  ifrne  dpt  kuno 

JJKt  4100  LlinV  qVaUTT 
EfKm  JX40  WW  COLOC  HHTU 
ID0Tt4l  M^l»*  »T  MATWX/MLQ 

inM  ift<*>j  rwi  TOT  lumt 

AlADt  toij  tlTni  BUAUTY 
tFlQM  IX  W?  DOT  HAIBII 

jcinc  km  'tenon  TrACTOt 
cahom'  a  so  aoi tu^ht 
OKJDATA  ff  zr  MlCnUNl 


■U9- 
114?" 


es 


mmmm 


auM  III  nut  A>.nra^i(ii«  lUm 

KEMtT  BUM  i*  fajb  Ldoc  atn 


JET  SuB'.ogic 


m  siBnun^rsxiPuDi'tKng         «mm 


Hw>Mt>  roil  »ico  wmno* 
**«!  coi*ui*  Mwwji  joinw 

biM  UM  K1»Q  Ptsmi  ITAHO 

cucwma  tnaHum  rtgrKTOt 

tUlOCO  »WI  CM  »■«  WHf  *a 

tiM  tma  »o  i  I  e  au  mtnui 

HCOrCH  ciXM  DdH  DIM  OJjMa 
MM  CT90  IMJUl  eet^'iJtt  DIM 

MAHM  y/nofrt  oaiami 

COIiWUMtVt  IT*IT|»  in 


IS" 

"XT 
TO" 


wmnsmmmmmm 


TAX  AC\ih:A;ri 
nftacuf  i^  ■.--. :     .  .  .■■.: 

STKFEU  KVl  i,r:t>tiim 

FUCKI  CMtiurW  M  iijb  log* 

MOW  MJUCn  r»K«Qnc  Mi 

AlUMHITU  Hits  Man  ^ 
lAitileM  M  CHitl  )*ard*n" 
niTfai'^MASU  u'cra  how 


W1P  PgO(l»IOHAI.  V  I  *  ]»cln 

ciNCsauisi  II  ieiTO 

HWr^C  H3r3   1.11   -I 

tiinvuiE  1:9  '  ' 
WO«)  WVilll    ;:  ■        - 

piPfocup  e.aiv<ai  i'-<<u'iaa 

HIVkOk  Ca»OL  <Zit-r-T--<Me,'i 


'If* 

124* 
129* 

1J4H 

'22^ 


14^ 


m 

HJkRDUUi  ucoua* 
mt  HfiwtMCM  IpnulM 
tWrr  TU  Trn^iwO^ 


UUMT  HlVm  MlciQ  Ftew 
MIHTSMC*  |r«**gM 
CQMPVna  UWHH  }« 

WW  n/in  ■  bnoA  ■  knuitr' 


t34» 
'39" 


~-— ■>»""-'-" 

-^"-^^ 

--'JV" 

f                      ^ 

ULTMA  rV: 
Ountolirw 

1.1. -no  il   -kid  •'AC*  'a-£4^-'*3j£-.  M 

I       *39»      J 

hMfOiNT  ?lriDaj-i'  IcrrwgM 
CATAiin  Vlff  JO  a-jan 

MOEfUt  0>ig«i  loRwOFt 

WTptg*  CCiVMfH  IwN'thnd 
HAUIT  MMjKT  WtfUKoip* 
tnUMHUIt  Intocon 
UIMAANQ  KHJt  IWWr  Mmo 
aUf)«CI  IWkMHt  lDnnn»« 
tjUOi  TjIU  iMcnonic  Aiii 
KTTU  MOtD  HKKItlOl  Sf^rv^rtfr 


w 

»24* 

>34* 


If  *  Unwilrnj 


a  I^)i7i*itf  .nvEir  £4{ffi  CJ>i|<.$  aiF^Mnff  WIP- 


NOTE 


|l     fVir*  MAfSi?  SJU.>«3    T¥irS  LrSTl.'tf  Ji  Art!  A  SMAU  SAJMPlf  IS 
CUB  lOPXOCOrtVtfmXY  J^EAU  CALiu^TOuFlifEK  wAtrc 

TO  US  toe  ofKii  y^  rrsvi  »*0r  {.rms  w,  ina  *o 


ALL  PRODUCTS  CARRY  U.S.  WARRANTIES 

AU  DEFECTIVE  PRODUCTS  EXCHAnGED  VrlTHI?i  30  DAYS 


amfm^tn^i/miytf.i 


^  ALL  MEW  ^ 
I  /fob  19e6\ 

I        -AtiaiO   viaco    COMPUTER 

f         'AfCOAD.  CA^SCT-JT 

;  AAC  CDC^T,4tOC 

«         'YlOtO  mO¥tt  CATALOG 


:-i;r, 


•T^ 


CATALOGS 


mxtt  o«nt  iMcx  onuru  ii 


i     23  PARK  ROW,  DEPT.  C4,  NYC,  NY  I0038 


Report  From: 

The  Winter  Consumer  Electronics  Show 


A  Turning  Point 
For  Atari? 


Tom  R.  Halfhill,  Editor 

Following  up  its  strong  showing  at  the 
Comdex  computer  show  in  November,  Atari 
introduced  a  more  powerful  version  of  its  ST 
at  the  Winter  Consumer  Electronics  Show  in 
January.  Thanks  to  increasing  sales,  growing 
software  support,  widening  distribution,  and 
hints  of  new  enhancements  to  come,  industry 
watchers  are  suddenly  taking  more  notice  of 
Atari's  hid  for  a  comeback.  Meanwhile, 
Commodore  also  entered  1986  with 
encouraging  sales  and  Apple 
is  responding  with  an 
improved  Macintosh  and 
lower  prices. 


30     COMPUTE!     April  1966 


A  year  ago  it  seemed  impossi- 
ble. Commodore  founder 
Jack  Tramiel  had  split  with 
his  successful  computer  company 
after  a  management  dispute, 
bought  the  debt-ridden  Atari  that 
he  had  nearly  destroyed  in  price 
wars,  installed  his  sons  in  key  posi- 
tions, laid  off  most  of  the  work 
force,  rushed  the  design  of  a  power- 
ful 16/32-bit  machine  in 
only  six  months,  intro- 
duced it  at  an  unheard- 
of  low  price,  and 
announced  he  was  go- 
ing to  resurrect  Atari  as  a 
major  contender  in  the 
personal  computer 
marketplace. 

Atari    still    isn't 
home  free.  But  the  house 
that  Jack  built  suddenly 
seems  a  lot  more  solid. 
Strengthened   by 
encouraging  sales  of  the 
520ST — according  to  es- 
timates,   at   least  100,000 
units    worldwide    through 
Christmas — Atari     is     now 
attracting    more    attention 
within     the     industry. 
"Frankly,  a  lot  of  people 
didn't  think  Jack  would 
make  it  this  far,"  says  one 
observer.    "Now   they're 


The  new  Atari  1040ST  is  the  first  one- 
megabyte  computer  for  under  $1,000.  It 
has  1,024K  of  RAM  and  a  built-in,  dou- 
ble-sided disk  drive. 


taking  him  a  lot  more  seriously." 
If  Atari's  comeback  ultimately 
succeeds,  the  six-week  period  be- 
tween late  November  1985  and  ear- 
ly January  1986  may  well  become 
recognized  as  the  turning  point. 
During  that  period.  Atari  piled  up 
sizeable  holiday  sales  and  made 
impressive  appearances  at  two  cru- 
cial industry  trade  shows:  Fall 
Comdex  and  the  Winter  Consumer 
Electronics  Show.  Both  are  held  an- 
nually in  Las  Vegas  and  are  among 
the  largest  trade  shows  in  the  U.S., 
with  upwards  of  100,000  people  at 
each  event. 

At  Comdex,  which  is  oriented 
toward  business  computing.  Atari 
demonstrated  to  skeptics  that  its 
520ST  was  a  real  machine  with 
dozens  of  software  packages.  At 
CES,  a  show  that  encompasses  ev- 
ery consumer  electronics  product 
imaginable,  Atari  was  the  only  ma- 
jor computer  manufacturer  in 
attendance  and  made  three  impor- 
tant announcements:  the  new 
1040ST,  a  more  powerful  version  of 
the  520ST  with  one  megabyte  of 
memory  and  a  built-in  disk  drive- 
price  reductions  of  $100  for  the 
monochrome  and  color  520ST  sys- 
tems; and  a  shift  to  mass-market 
outlets  such  as  department  stores 
for  the  520ST. 

Atari's  appearances  at  Comdex 
and  CES  seemed  all  the  more  im- 
pressive due  to  the  conspicuous  ab- 
sence of  its  closest  competitor. 
Commodore.  People  were  surprised 
when  Commodore  missed  Comdex 
because  the  company  has  been  try- 
ing to  position  the  Amiga  as  a  busi- 
ness computer  and  Comdex  was  the 
ideal  place.  But  there  was  shock 
when  Commodore  bowed  out  of 
CES  because  Commodore  has  never 
missed  a  CES  since  the  days  when 
wristwatches  and  calculators  were 
its  stock  in  trade. 


Commodore  didn't  have  much 
to  say  about  missing  the  shows. 
However,  one  Commodore  execu- 
tive admitted  he  was  "uneasy" 
about  the  reaction  at  CES — ironi- 
cally, the  rumors  of  imminent  fi- 
nancial catastrophe  that  once 
followed  Atari  were  now  being 
whispered  about  Commodore.  The 
rumors  proved  untrue,  however, 
and  Commodore  says  it  definitely 
plans  to  attend  the  Summer  CES  in 
Chicago  this  June. 

Actually,  Commodore  finished 
1985  with  heavy  sales  of  its  own. 
According  to  reliable  estimates. 
Commodore  sold  about  one  million 
64s,  as  many  as  500,000  Commo- 
dore 128s,  and  at  least  20,000  Ami- 
gas.  Even  Commodore  was  caught 
off  guard  by  the  64  and  128  sales.  In 
fact,  insiders  say  Commodore  tried 
twice  during  the  fall  to  discontinue 
the  64,  but  had  to  restart  production 
both  times  to  meet  sudden  demand. 
As  an  indication  that  Amiga  sales 
are  healthy,  the  leading  indepen- 
dent software  supplier  for  the  com- 
puter— Electronic  Arts — says  it  re- 
covered all  of  its  1985  Amiga  devel- 
opment costs  within  two  weeks  after 
releasing  its  first  Amiga  products. 

Although  Atari  and  Commo- 
dore are  still  struggling  financially, 
both  have  survived  a  rough  market 
in  1985  and  appear  to  be  in  better 
shape  for  1986. 

Since  Atari  was  the  only  ma- 
jor computer  company  ex- 
hibiting at  CES  (IBM  and 
Apple  routinely  avoid  this  show), 
most  of  the  computer  news  was 
Atari-related.  The  main  event  was 
the  introduction  of  the  1040ST,  the 
first  one-megabyte  computer  sell- 
ing for  under  $2,500.  In  fact,  it's  the 
first  one -megabyte  computer  sell- 
ing for  under  $1,000. 

April  1966     COMPUTB     31 


The  1040ST  is  basically  an  en- 
hanced 520ST  and  is  fully  compati- 
ble with  existing  ST  software  and 
hardware.  The  keyboard  and  all  in- 
terfaces are  identical:  RS-232  serial 
and  Centronics-standard  parallel 
ports;  in/out  MIDI  (Musical  Instru- 
ment Digital  Interface);  floppy  and 
hard  disk  interfaces;  plus  mono- 
chrome and  analog  RGB  monitor 
outputs.  The  graphics-oriented  user 
interface,  GEM  (Graphics  Environ- 
ment Manager),  is  the  same. 

New  features  on  the  1040ST 
include  one  megabyte  (1,024K)  of 
Random  Access  Memory  (RAM), 
twice  the  amount  that  comes  with 
the  520ST;  a  built-in,  double-sided 
SVi-inch  disk  drive  with  a  capacity 
of  770K  per  disk,  twice  the  capacity 
of  the  drive  sold  with  the  520ST;  a 
TV  output  jack;  and  an  internal 
power  supply  for  both  the  com- 
puter and  drive,  reducing  the  famil- 
iar clutter  of  external  cables. 

Like  recent-model  520ST5,  the 
1040ST  comes  with  its  Tramiel  Op- 
erating System  (TOS)  in  Read  Only 
Memory  (ROM)  chips,  freeing  up 
more  than  200K  RAM  that  used  to 
be  required  when  loading  TOS 
from  disk.  Also  like  the  520ST,  the 
1040ST  comes  with  ST  BASIC,  the 
NEOchrome  graphics -drawing  pro- 
gram, and  a  word  processor,  1st 
Word  (the  520ST  comes  with  ST 
Writer).  Atari  says  1st  Word  has 
GEM  features  such  as  drop-down 
menus  and  on-screen  type  fonts. 
{ST  Writer,  by  contrast,  is  a  direct 
translation  from  the  AtariWriter 
word  processor  for  eight-bit  Ataris.) 

There  are  two  different  1040ST 
packages.  With  a  high-resolution 
monochrome  monitor,  the  suggest- 
ed retail  price  is  S999.95,  With  an 
analog  RGB  color  monitor,  the  price 
is  $1,199.95.  Atari  says  the  1040ST 
will  be  sold  only  through  computer 
dealers  and  should  be  available 
immediately. 

The  520ST  also  underwent 
some  minor  changes.  The 
latest  models  will  be  shipped 
with  TOS  in  ROM  and  a  TV  output 
jack.  To  widen  distribution,  the 
520ST  will  be  sold  through  mass- 
market  outlets  in  three  different 
ways.  A  system  that  includes  the 
computer,  a  single-sided  3V2-inch 
disk  drive  (380K  capacity),  and  hi- 
res monochrome  monitor  will  now 

32     COMPUTE!      April  1986 


be  priced  at  $699  suggested  retail. 
The  same  system  with  an  analog 
RGB  color  monitor  instead  of  the 
monochrome  screen  will  be  priced 
at  $899.  Both  prices  are  $100  lower 
than  before.  The  520ST  compo- 
nents are  also  available  separately: 
$399  for  the  computer,  $199  for  a 
single-sided  drive,  $299  for  a  dou- 
ble-sided drive,  $199  for  the  mono- 
chrome monitor,  and  $299  for  the 
RGB  monitor. 


by  lining  up  a  series  of  computers 
running  the  now-famous  Amiga 
bouncing  ball  demo.  (A  screen  pho- 
to of  this  demo  appears  in  COM- 
PUTEf's  cover  story  on  the  Amiga  in 
September  1985;  it  shows  a  red- 
and-white  checkered  globe  spin- 
ning and  bouncing  around  the 
screen,  casting  a  transparent  shad- 
ow on  the  background.)  An  Amiga, 
520ST,  Macintosh,  and  eight-bit 
Atari    130XE   spent   four   straight 


^c,/.^,uLjL/ 


I  f  (  r  (  I  <  (  I  I  I  (  I  t  I 

'    (  t  I  I  I  t  I  I  I  ^  I  I  1  I 

t-A-i  I  I  11  1,1  1.1  j' 

'  /F  I  iiiir 


Atari's  520ST  has  been  improved  with  a  ROM-based  operating  system,  a  TV  output 
jack,  and  a  $100  lower  price.  Also,  for  the  first  time,  the  computer  and  other 
components  tvill  be  available  separately  in  mass-market  outlets. 


Rumors  abounded  at  CES 
about  new  developments  for  the  ST 
line,  including  a  better  graphics 
chip,  a  bit-block  transfer  chip  simi- 
lar to  the  one  in  the  Amiga,  a  5'/*- 
inch  disk  drive  adapter  for  use  with 
an  IBM  PC  emulator,  and  more. 
Officially,  Atari  won't  confirm  or 
deny  if  it's  preparing  to  introduce 
any  of  these  products  in  the  near 
future. 

However,  Atari  is  expected  to 
announce  at  least  one  enhancement 
at  an  upcoming  computer  show  in 
West  Germany  (about  half  of  all  ST 
sales  are  in  Europe).  The  most  like- 
ly possibility  is  the  bit-block  chip, 
which  allows  faster  screen  graph- 
ics. Also,  it  is  now  known  that  three 
companies  outside  Atari  are  work- 
ing on  PC  emulators  for  the  ST, 
each  taking  a  slightly  different  ap- 
proach. At  this  writing  (mid-Janu- 
ary), none  of  them  is  expected  to  be 
ready  for  several  months. 

Atari's  CES  exhibit  poked  fun 
at  the  Amiga  and  Apple  Macintosh 


days  dribbling  checkered  balls  at 
the  Atari  booth.  Oddly  enough,  the 
130XE  version  was  perhaps  the 
most  impressive  of  all.  Not  only 
was  the  130XE  bouncing  a  checker- 
ed ball,  but  also  a  3-D  image  of  the 
Atari  logo  decorated  with  128  rip- 
pling colors. 

Apple  hasn't  been  oblivious  to 
the  competition,  and  a  week  after 
CES  announced  an  improved  ver- 
sion of  the  Macintosh  and  lower 
prices  for  the  512K  Mac.  The  new 
Macintosh  Plus  has  one  megabyte 
of  RAM,  a  double-sided  disk  drive 
that  stores  800K  (twice  the  capacity 
of  existing  Macintosh  drives),  a  re- 
designed keyboard  with  numeric 
keypad  and  cursor  keys,  a  faster 
operating  system,  and  an  extra  pe- 
ripheral port  called  the  Small  Com- 
puter System  Interface.  The 
suggested  retail  price  is  $2,599.  The 
512K  Mac  was  reduced  from  $2,499 
to  $1,999,  and  kits  are  available  so 
owners  of  128K  and  512K  Macs  can 
upgrade  to  the  Mac  Plus. 


Now  Get  Up  To  200  FREE  Programs*  When  You 
Subscribe  to  COMPUTE!  Today. 


Subscribe  to  COMPUTE!  today  and  you'll  be  getting  a  lot  more 
than  just  another  computer  magazine.  That's  because  COMPUTE! 
comes  complete  with  up  to  20  FREE  programs  in  each  big  issue. 

Subscribe  now  and  you  can  depend  on  a  steady  supply  of  high 
quality,  fun-filled  programs  like  Cash  Flow  Manager,  Speed  Ski, 
Turtle  Pilot,  Boggier,  Text  Plot,  Retirement  Planner,  and  hundreds 
of  other  educational,  home  finance,  and  game  programs  the  entire 
family  can  use  all  year  long. 

The  free  programs  alone  are  worth  much  more  than  the  low 
subscription  price.  But  there's  more  to  COMPUTE!  than  just  free 
programs. 

COMPUTE!  s  superb  articles  deliver  the  latest  inside  word  on 
everything  from  languages  to  interfaces.. .programming  to  disk 
drives.  And  our  up-to-the-minute  software  reviews  are  must  read- 
ing for  any  home  user. 

Whether  you're  a  novice  or  an  experienced  user,  COMPUTE!  is 
perfect  for  you.  So  subscribe  today.  Return  the  enclosed  card  or 
call  1-800-247-5470  (in  Iowa  1-800-532-1272). 


COMPUTES  Publicationsjnc, 

Part  ot  ABC  Consumer  Magazines,  m^: 

One  ot  the  ABC  Publishing  Companiei 

625  7lh  Avanue.  frtn  FloOf.  N«w  Vofk.  hJV  10019 

PuoUfwi  of  CO'vVMT  COMPUTE'  i  Coivnv  CDNnjTE*  i  Ga»n*  [>i>  cOsw^t'  Kk-i  cm  CO«v''£'  I  *tic—  ADpK'Oio^ 


"Ranging  from  short  techniques  and  programming  tips  to  complete,  powerful  applications  programs. 


Atari  didn't  ignore  its  older 
products  at  CES.  Among 
other  things,  two  new 
eight-bit  computer  packages  were 
unveiled. 

The  130XE,  a  400/800/XL- 
compatible  computer  with  128K 
RAM  that  was  introduced  last  year, 
will  now  be  available  in  a  $399 
package  that  includes  a  1050  disk 
drive,  1027  printer,  and  five  pieces 
of  software:  AtariWriter,  Music 
Painter,  Paint,  Star  Raiders,  and  Si- 
lent Butler.  The  130XE  is  still  avail- 
able separately  for  $149. 

Atari's  new  lowest-end  com- 
puter is  the  65XE,  a  400/800/XL- 
compatible  machine  with   64K 


Relics  from  another  age?  Nope.  Video- 
game machines  are  still  selling  so  well 
that  Atari  has  redesigned  the  nine-year- 
old  2600  and  introduced  a  new  model, 
the  7800. 


RAM.  It  was  actually  announced  at 
last  year's  Winter  CES,  but  was 
withheld  from  the  market  until  ex- 
isting inventories  of  800s  and 
800XLS  were  sold  out.  The  65XE 
will  be  sold  separately  for  under 
$100  or  in  a  package  similar  to  the 
laOXE's  for  $300-$350. 

Much  to  everyone's  surprise. 
Atari  also  came  to  CES  with  a  rede- 
signed 2600  videogame  machine 
(formerly  known  as  the  VC5)  and 
the  new  7800  game  machine. 
What's  that,  you  thought  video- 
game machines  were  dead?  Guess 
again.  Atari  says  it  sold  over  a  mil- 
lion 2600s  in  1985.  Apparently 
many  of  them  are  going  to  new 
markets  overseas — including,  we 
hear,  the  People's  Republic  of 
China. 

34     COMPUTEI     April  1986 


The  revamped  2600  is  smaller, 
lighter,  sleeker,  has  a  carrying  han- 
dle, and  costs  less  than  $50.  The 
7800  machine  was  one  of  the  last 
projects  of  the  old  Atari  before  Tra- 
miel  took  over,  and  is  now  being 
unpacked  from  mothballs.  Thanks 
to  a  chip  named  MARIA,  the  7800's 
graphics  are  superior  even  to  those 
of  the  eight-bit  computers,  and  the 
machine  accepts  all  2600  cartridges 
without  an  adapter.  It  sells  for  less 
than  $80  and  comes  with  a  new 
version  of  Pole  Position,  the  hit  car 
racing  game. 

Computers  aren't  much  good 
without  software,  and  Win- 
ter CES  demonstrated  that  a 
lot  of  companies  are  bringing  out 
new  programs  for  the  ST  and 
Amiga  as  well  as  popular  eight-bit 
machines.  Unfortunately,  there 
were  a  lot  fewer  software  compa- 
nies at  this  CES  than  last  year's. 
The  West  Hall,  a  large  building 
which  supplements  the  main  Con- 
vention Center,  once  was  filled 
with  software  publishers.  This  year, 
only  a  handful  of  them  shared 
space  with  companies  selling  satel- 
lite dishes,  videotapes,  cable  TV  ac- 
cessories, and  other  periphernalia. 
The  last  two  years  have  been  tough, 
and  many  software  developers 
either  can't  afford  to  exhibit  at  CES 
anymore  or  are  out  of  business 
altogether. 

Still,  some  fascinating  products 
are  on  the  way.  Starting  with  ST  and 
Amiga  software,  here's  what's  new: 

Electronic  Arts  (San  Mateo, 
California)  announced  several  new 
programs  for  the  Amiga  and  its  first 
products  for  the  Atari  ST.  New 
Amiga  software  slated  for  release 
this  year  includes  Deluxe  Music,  a 
note-oriented  composition  pro- 
gram; Instant  Music,  a  composition 
program  for  nonmusicians;  Arctic- 
fox,  a  strategic  combat  tank  simula- 
tion;/Irfuejjfure  Construction  Set,  for 
do-it-yourself  adventure  games;  and 
Deluxe  Printing  Construction  Set. 

A  previously  announced  Elec- 
tronic Arts  program.  Deluxe  Video 
Construction  Set,  is  due  for  release 
soon.  It  lets  you  create  animated 
sequences  that  can  be  integrated 
with  screens  created  in  DeluxePaint, 
a  drawing  program  released  in  De- 
cember.   (Electronic    Arts    says    it 


Arcticfox  is  a  new  strategic  tank  game 
for  the  Amiga  from  Electronic  Arts. 


This  is  the  Amiga  version  o/ Marble 
Madness,  but  Electronic  Arts  is  also 
bringing  out  an  Atari  ST  version  of  the 
game. 


II  Hi  II  III  II  III  II  III 

-  ...                , .    1 

,ii-:i  UajJ 

Deluxe  Music  is  a  note-oriented  compo- 
sition program  designed  for  the  Amiga 
bv  Electronic  Arts. 


Even  if  you  don't  know  much  about  mu- 
sic, you  can  play  songs  on  an  Amiga 
with  Electronic  Arts'  Instant  Music  pro- 
grajn.  It  has  numerous  built-in  instru- 
ment sounds  and  doesn't  rely  on 
standard  musical  notation. 


NRI  Trains  You  At  Home— As  You  BuUd  Your  Own  IBM-Compatible  Computer 

GET  THE  KNOW-HOW 

TO  REPAIR  EVERY 

COMPUTER  ON  THIS  PAGE. 


Learn  the  Basics  the  NRI 
Way-and  Earn  Good 
Money  Troubleshooting 
Any  Brand  of  Computer 

The  biggest  growth  in  jobs 
between  now  and  1995,  according 
to  Department  of  Labor  estimates, 
will  occur  in  the  computer  service  and 
repair  business,  where  demand 
for  trained  technicians  will 
actually  double. 

You  can  cash  in  on  this 
opportunity— either  as  a 
fulitime  corporate  technician 
or  an  independent  service- 
person— once  you've  learned 
all  the  basics  of  computers  the 
NRI  way.  iNRI's  practical 
combination  of  "reason-why" 
theory  and  "hands-on"  building 
skills  starts  you  with  the  hindamentais 
of  electronics,  then  guides  you  through 
advanced  electronic  circuitry  and  on 
into  computer  electronics.  You  also 
learn  to  program  in  BASIC  and  machine 
language,  the  essential  languages  for 
troubleshooting  and  repair. 

YeuBuild-andKeep-a  16-bil 
Sanyo  personal  computer 

The  vital  core  of  your  training  is  the 
step-by-step  building  of  the  16-bit  Sanyo 
MBC-550  series  computer.  Once  you've 
mastered  the  details  of  this  state-of-the- 
art  machine,  you'll  be  qualified  to 
service  and  repair  virtually  every  major 
brand  of  computer,  plus  many  popular 
peripheral  and  accessory  devices. 

With  NRi  training,  you  learn  at  your 
own  convenience,  in  your  own  home. 
You  set  the  pace— without  classroom 
pressures,  rigid  night-school  schedules, 
or  wasted  time.  You  build  the  Sanyo 
IBM  compatible  computer  from  the 
keyboard  up,  with  your  own  personal 
NRI  instructor  and  the  complete  NRI 
technical  staff  ready  to  answer  your 
questions  or  give  you  guidance  and 
special  help  whenever  you  need  it. 

Praised  by  critics  as  the  "most 
infriguing"  of  all  the  IBM-PC  compatible 
computers,  the  new  Sanyo  uses  the  same 
8088  microprocessor  as  the  IBM-PC  and 


IBM  is  B  Keglstared  TiBdomarti  o1  Smemational 
Business  Machine  C0rporaliofi. 

Epson  is  a  RegistonKj  Trftdemarit  el  EpstTn 
Amaiica,  inc. 


features  the  MS/DOS  operating  system. 
As  a  result,  you'll  have  a  choice  of 
thousands  of  off-the-shelf  software  pro- 
grams to  run  on  your  completed  Sanyo. 

Your  NRI  course  includes 
installation  and  troubleshooting  of  the 
"intelligent"  keyboard,  power  supply, 
and  disk  drive,  plus  you'll  check  out 


the  8088  microprocessor  functions,  using 
machine  language.  You'll  also  prepare 
the  interfaces  for  future 
peripherals  such  as  printers 
and  joysticks. 

100-Page  Free  Catalog 
Tells  More 

Send  the  coupon  today  for 
Niy's  big  100-page  color 
catalog  on  NRl's  electronics 
training,  which  gives  you 
all  the  facts  about  NRI 
courses  in  Micro- 
computers, Robotics, 
Data  Communica- 
tions, TVA'ideo/ 
Audio  Servicing,  and 
other  growing  high-tech 
career  fields.  If  the  coupon  is 
missing,  write  to  NRI  Schools, 
3939  Wisconsin  Avenue,  NW, 
Washington,  DC  200 16. 


your  NRI  course 

includes  the 

Sanyo  lB-bil 

IBM  compat-    ^ 

ibte  com- 

putQr  witii 

12SK  RAM, 

monitor, 

double  densityMouble  sided  disk  drive, 

and  "intelligent"  keyboanJ:  the  NRI 

Discovery  Lab ',  leaching  circuit  design  and  operallons; 

a  Digital  Muittmetef;  Bundled  Spread  S^eet  and  Word 

Pfocesstng  Software  wortti  overSIOOOat  relaii— and  more. 


SCHOOLS 

McGraw-Hill  Continuing  Education  Center 
3939  Wisconsin  Avenue,  Washington,  DC 20016 
We'll  give  you  tomorrow. 

BTcheck  one  free  catalog  only 

D  Compiitsr  Boctninlcs  wttli  MicrocDinpitlers 

D  Data  Communications 

D  Roboiics  &  Industrial  Comrols 

n  Video  Eleclronics  Servicing 

n  Electronic  Design  Technology 

□  Digital  Eleclronics 


For  Career  courses 
approved  under  Gl  bill, 

D  check  for  deiails. 


D  Saieliiie  Comraunlcaiions 
n  Comniunicalions  Electronics 
n  Industrial  Electronics 
n  Basic  Electronics 
D  Telephone  Servicing 
D  Small  Engine  Seniicing 
n  Appliance  Servicing 


n  Automolive  Senncing 
n  Air  Conditioning,  Healing, 

Reffigeralion.  &  Solar  Technology 
D  Building  Construction 
n  Lxksmithing  &  Electronic 

Security 


Nama  (Pieass  F^int] 


Street 


CityrataieJZlp 


Accredited  b^  tiie  National  Home  Stjdv  Council 


shipped  15,000  copies  of  Deluxe- 
Paint  the  first  two  weeks.)  Scores 
composed  with  Deluxe  Music  can 
also  be  integrated  with  Deluxe  Vid- 
eo Construction  Set. 

ST  software  from  Electronic 
Arts  includes  two  programs  already 
released  for  the  Amiga:  Financial 
Cookbook,  a  home  fir\ancial  planner, 
and  Marble  Madness,  an  arcade 
game.  Prices  for  Electronic  Arts' 
Amiga  and  ST  software  range  from 
$39.95  to  $79.95. 

Hippopotamus  Software  (Los 
Gatos,  California)  is  bringing  out 
the  Hippo  ST  Sound  Digitizer  and 
Hippovision  Video  Digitizer  for  the 
Atari  ST.  The  sound  digitizer  plugs 
into  the  printer  port  and  lets  you 
sample,  modify,  and  play  back  any 
type  of  sound.  It  includes  special- 
effects  software  and  a  microphone 
for  $139.95.  The  video  digitizer  lets 
you  capture  images  in  256  X  256- 
pixel  resolution  from  any  compos- 
ite video  source,  such  as  a  video 
camera,  videocassette  recorder, 
videodisc  player,  or  TV  tuner.  Pic- 
ture files  are  compatible  with  Atari's 
NEOchrome  drawing  program,  can 
be  printed  on  color  printers,  and  can 
be  transmitted  via  modem.  The 
price  was  not  announced. 

Hippopotamus  has  13  other  ST 
programs  scheduled  for  release 
soon,  including  HippoWord,  an 
$89.95  word  processor;  HippoCon- 
cept,  an  idea  processor,  $89.95; 
HippoSimple,  a  database  manager, 
$49.95;  Hippo  Disk  Utilities,  $49.95; 
HippoBackgamrnon,  $39.95;  Hippo- 
Spell,  a  spelling  checker  with 
30,000-word  dictionary  and  user- 
definable  terms,  $39.95;  Hippo 
RAMdisk,  $34.95;  Hippo  Computer 
Almanac,  which  contains  over 
35,000  facts  on  everything  from 
area  codes  to  sports  trivia,  $34.95; 
Hippo  Jokes  &  Qwotes,  with  selecta- 
ble PG,  R,  or  X  ratings,  $34.95; 
HippoArt  1,  a  collection  of  30  picture 
files  compatible  with  NEOchrome, 
$39.95;  Hippo  EPROM  Burner,  for 
programming  your  own  chips, 
$139.95;  HippoClean,  a  disk  drive 
cleaning  kit,  $29.95;  and  Hippo- 
Pixel,  a  utility  for  creating  your  own 
sprites  and  fonts,  $39.95. 

Aegis  Development  (Santa 
Monica,  California)  is  bringing  out 
four  graphics  products  for  the 
Amiga:  Aegis  Images,  a  drawing 
program;  Aegis  Draw,  a  Computer- 
Aided  Design  (CAD)  program;  Ae- 

36     COMPUTEI      April  1 986 


This  strikinglif  beautiful  picture  was  created  on  the  Amiga's  320  X  200-pixel  screen 
in  52  colors  with  Aegis  Images,  a  graphics-art  program  demonstrated  at  CES. 


gis  Animator,  for  creating  animated 
sequences;  and  Impact,  an  executive 
graphics  package.  Images,  Animator, 
and  Impact  were  actually  devel- 
oped by  Island  Graphics  of  Sausa- 
lito,  California.  Under  an 
agreement  with  Commodore,  they 
were  supposed  to  be  released  under 
the  Amiga  brand  name.  For  in- 
stance. Images  was  originally 
known  as  Graphicraft  or  ProPaint 
(several  screens  created  with  this 
program  appear  on  the  Amiga's 
packaging  and  in  the  September 
1985  issue  of  COMPUTE!).  But  Island 
Graphics  and  Commodore  had  a 
falling  out,  and  the  Amiga  Graphi- 
craft currently  being  sold  is  not  the 
software   developed   by   Island 


Graphics.  Instead,  Aegis  acquired 
the  marketing  rights  to  the  Island 
Graphics  programs,  enhanced 
them,  and  renamed  them  Aegis  Im- 
ages, Animator,  and  Impact. 

Images  is  available  for  $79.95 
separately,  or  for  $139.95  in  a  pack- 
age with  Aegis  Animator.  Using  lin- 
ages screens  as  a  backdrop. 
Animator  allows  3-D  animation  and 
rotation,  metamorphic  shape  ma- 
nipulation, storyboarding  of  up  to 
nine  separate  sequences,  and 
ghost-line  animation.  Impact 
($199.95)  is  for  business  presenta- 
tion graphics  and  includes  a  slide 
show  feature — charts,  graphs,  and 
pictures  can  be  flipped  in  a  prede- 
termined sequence  and  transformed. 


Impact,  another  product  from  Aegis 
Development,  makes  it  possible  to  pro- 
duce three-dimensional  business  graph- 
ics using  the  Amiga's  4,096  colors. 


Aegis  Draw  is  a  Computer-Aided 
Design  (CAD)  program  for  the  Amiga 
which  is  aimed  at  professional  users. 


mmm 


n  I  I  I     I  n  I  I     I  I  I  M I  I  r  f  1 


i,iiV,Vii|i.i|i,i.i,ixr 
''''     1 1 1 H  I'l' 


'  jVlTT'rt 


Ah.(ni> 


Suft\\\tro 


BASIC  7.0 
INTERNALS 


n  TTi    n  TT 1    rTTTirTrn 


"i'|iiVii|'|iiWii|'i': 


A. -MIA  K.c«-: 

Ah..fu 


^-aii-ii-Tit" 


S..fi-.> 


1571  INTERNALS 


AO*iA  tR:c-(f4iiooiPt.H.SMLDtjy 


AbiCUs 


Soflwarc 


Detailed  guide  presents  tt^a  IZS's 
operating  system,  explains  graphic 
chips.  Memory  K^nagement  Unh.  BO 
cohjmn  graphjcs  and  commented 
ROM  listings.  SOOpp  S1d-9S 


Get  all  the  Inside  inlormation  on 
BASIC  7.0,  This  exhaustive  hand- 
t>ook  is  connpleie  with  commented 
BASIC  7.0  ROM  listings.  Coming 
Summer 'a&.  S19.95 


Filled  with  Into  for  ever^'one.  Covers 
60  column  hi«res  graphics,  win- 
dowing, memory  layout,  Kernal 
fot-iines,  sprites,  soltware  pro- 
lection,  auloMarting,    300pp  S19,95 


Insiders'  guide  tor  novice  A  ad- 
vanced users.  Covers  sequential  4 
relative  files,  &  direct  access  com- 
mands. Descnbos  DOS  routines. 
Commented  listings.   SDQpp   $13. 9S 


Learn  fundamentals  of  CAD  whild 
developing  your  own  system.  Design 
o&jects  on  you  r  screen  1o  dump  to  a 
printer.  Includes  Itslings  tor  '&4  with 
Simon's  Basic.  300pp  $19.95 


TTIE 
OBWICSBOW. 
TOR  WE       ; 
COMMOOOREf 


.i       ADVEI>ITURE  1 

THk-wc  OAMEWKITERS        iJiil   -i«iH>.i. 


,J*lSE.  THE  tmTME  THE 

'^^d'H  ATIATOMI         c01".M0D0RE  ;        ATWTOMY 

'-      ■-  I     I  OfTllE 


Iritroduction  to  programing;  problem 
analysis;  thorough  description  el  all 
BASIC  commands  with  hundreds  ol 
examples;  monitor  commands;  util- 
ities; much  more.  400pp  S19.95 


Presents  dozens  ol  programming 
quick-hitters.  Easy  ar^d  useful 
techniques  On  the  opej^ting  system, 
stacks,  zero-page,  pointers,  the 
BASIC  interpreter  and  more.    $1 9  95 


Essential  guide  for  everyone  [ntei- 
esied  in  CP/M  on  the  128.  Simple 
explanation  of  the  operating  system, 
memory  usage,  CP/M  utility  pro* 
grams,  submit  lilesi  more.      S19.9S 


ANATOMY  OF  C-64  Insldei's  guide  to  the 
'64  internals.  Graphics,  sound,  1/Q,  t^emal. 
memory  maps,  more,  CompJoto  oommenled 
ROM  listings.  MOpp  S19.95 


ANATOMY     OF     1541  ^DRIVE    Best 
handbook  on   llqpp^'r^lal^ns  all.  Many 
Bxamples  and  ijltjtllf gji\i^UllV  comme 
1541  ROM  Hslinoi;^^  '  SMpp     $1 


mad 
9.95 


rislinjji.^^  ■  SMpp 

MACHIKE  LANGUAGE  C-64  Learn 
6510  coda  write  fast  programs.  Many  sam- 
ples and  listings  lot  complete  assembler, 
monitor,  A  simulator.  ZOOpp    S14.95 

GRAPHICS  BOOK  0^64  -  best  reference 
covers  basic  and  advanced  graphics. 
Sprites,  animation,  Hires,  Multicolor, 
lighlpen,  3D-graphlcs,  IRQ.  CAD»  pro- 
jections, curves,  mora,  350pp   SI  9.95 


TRICKS  &  TIPS  FOR  C'64  Collodion  of 
easy-io>us«  techniques:  at^^anced  graphics, 
improved  data  Input,  enhanced  BASIC, 
CP/M.  more,  275pp    S19.95 

1541  REPAIR  &  MAINTENANCE 
HandtMOk  describes  the  disk  drive  hard- 
ware. Includes  schematics  and  techniques 
to  keep  1541  running.  200pp    £19.95 

ADVANCED  MACHINE  LANGUAGE 
Not  covered  elsewhere;  -  video  controller, 
interrupts,  timers,  clocks,  L/0,  real  time, 
extended  BASIC,  more.         2lOpp   $14.96 

Pf^lNTER  BOOK  C-S4/VIC-20  Under- 
stand Commodore,  Epson -com  pat  to  le  print- 
ers and  1520  plotter.  Packed:  utiiities;  gra- 
phics  dump;  3D-plol;  commented  MPSS01 
ROM  Ittllngt.  more,  33fipp  Sid.S£ 


SCIENCE/ENGINEERING   ON    C-64      In 

depth  intro  1o  computers  in  sdence.  Topics: 
Chemistry,  physics,  biology,  astronomy, 
alectronks.  others.  SSOpp  519.9& 

CASSETTE  BOOK  C-&4/VIC-20 
Comprehensive  guide;  many  sample 
programs.  High  speed  operating  system 
fast  tile  kfading  and  saving.  225pp   S14.9& 

IDEAS  FOR  USE  OH  C-64  Themes: 
auto  expenses,  calculator,  recipe  fiie.  slodk 
Hsts,  diet  planner,  window  advertising, 
others.  Includes  listings.  200pp  St  2.95 

COMPILED  BOOK  C-64/C-12e  All  you 
need  to  know  about  compilers:  how  they 
work;  designing  and  writing  your  own; 
generating  machine  code.  With  working 
example  compiler.  3D0pp  S19-B5 


Adventure  Qamewrller'*  Handbook 

Siep^y'Step  guJde  to  designing  and  writing 
your  own  adventure  games*  With  automated 
adventure  garrw  generator.  200pp    S14.95 

PEEKS  «  POKES  FOR  THE  C-54 

Includes  in-depth  explanations  of  PEEK, 
POKE,  USH,  and  other  BASIC  commands. 
Learn  the  'inside"  tricks  to  get  the  most  oi/t 
ofyouf'G4.  20Qpp  $14.95 

OptlonaE  DJskettee  for  books 
For  your  convenience,  the  programs 
contained  in  each  of  our  books  are  avail- 
able on  diskette  to  save  you  time  entering 
them  from  your  keyboand.  Specify  name  of 
book  when  ordering.  Si  4,95  each 


Abacus  ^ra  Software 


C-12Q  snd  C-^  welr«d«rniirkftO<Ccmmodtfe  Butin«*t  MecNnes. 


P.O.  Box 7211  Grand  Rapids,  Ml 49510-Telex709-101  ■  Phone  (616) 241-5510 

Call  now  for  the  name  of  your  nearest  dealer.  Or  to  order  directly  by  credit  card,  MC,  AMEX  of  VISA  call  (616) 
241-5510.  Other  software  and  books  are  available-Call  and  ask  for  your  free  catalog.  Add  $4.00  for  shipping 
per  order.  Foreign  orders  add  $1 0.00  per  book.  Dealer  inquires  welcome-1 200+  nationwide. 


Aegis  Draw,  for  hobby  and  pro- 
fessional CAD  work,  actually  con- 
sists of  two  programs:  Aegis  Draw 
and  Aegis  Draw  Professional.  The 
first  version  retails  for  $199.95  and 
can  be  upgraded  to  the  Professional 
version  at  extra  cost.  Aegis  Draw  has 
zooming,  automatic  scaling,  selec- 
table grids,  layering,  and  multiple 
windows  so  you  can  work  on  sever- 
al drawings  simultaneously,  or  on 
different  parts  of  the  same  drawing. 
It  supports  Kurta  and  Summagra- 
phics  digitizers,  and  plotters  by  Ro- 
land, Hewlett  Packard,  Houston 
Instruments,  Epson,  and  Comrex. 
All  four  Aegis  programs  for  the 
Amiga  should  be  available 
immediately. 

Supra  Corporation  (Albany, 
Oregon)  announced  a  series 
of  hard  disk  drives  for  the 
Atari  ST  with  capacities  of  10,  20, 
40,  and  80  megabytes.  Prices  start 
at  $799  for  10  megabytes.  They 
should  be  available  this  spring. 

Optimized  Systems  Software 
(San  Jose,  California)  was  demon- 
strating Personal  Pascal  for  the  ST  at 
the  Atari  booth  and  has  already 
started  shipping.  This  language 
•supports  all  of  the  ST's  special  fea- 
tures, compiles  and  links  most  pro- 
grams in  about  a  minute  (even 
faster  with  a  hard  disk  or  RAM 
disk),  and  sells  for  $74.95.  OSS  is 
also  readying  a  version  of  the  Pro- 
log language  and  a  set  of  disk  utili- 
ties for  the  ST. 

Cardco  (Wichita,  Kansas), 
known  in  the  past  for  its  VIC-20 
and  Commodore  64  add-ons,  is 
preparing  a  one-megabyte  memory 
expansion  board  for  the  Amiga. 
The  board  plugs  into  the  expansion 
bus,  and  Cardco  says  it  will  be 
available  this  spring  for  about  $400. 

Unison  Woirld  (Berkeley,  Cali- 
fornia) is  converting  PrintMaster — 
a  printer  utility  similar  to  The  Print 
Shop — to  the  Atari  ST.  It's  already 
available  for  the  Commodore  64, 
IBM,  and  CP/M  computers. 

Activision  (Mountain  View, 
California)  said  sales  of  its  initial 
software  for  the  ST  and  Amiga  have 
been  "quite  strong"  and  that  addi- 
tional titles  will  be  released  this 
year.  These  include  Garry  Kitchen's 
GameMaker:  The  Computer  Game 
Design  Kit  and  The  Music  Studio  for 
the  Amiga  and  ST;  and  The  Activi- 
sion Little  Computer  People  Discov- 

38     COMPUTEI      April  1986 


^^"'^ 


Wff 


T>'V^SJJ 


Another  new  music-composition  pro- 
gram is  The  Music  Studio  from  Activi- 
sion. There  are  versions  for  the  Amiga, 
Atari  ST,  and  IBM  PCjr/Tandy  WOO 
computers. 


ery  Kit  for  the  Amiga,  GameMaker 
lets  you  write  videogames  without 
learning  a  programming  language. 
Finished  games  can  be  saved  on  a 
blank  disk  and  run  independently 
of  the  master  program,  so  you  can 
distribute  copies  to  friends.  Activi- 
sion is  sponsoring  a  GameMaker 
contest — first  prize  is  a  trip  to  Ac- 
tivision plus  $5,000. 

The  Music  Studio  is  a  composi- 
tion tool  designed  by  Audio  Light 
for  both  amateur  and  professional 
musicians.  With  it,  you  can  design 
instruments  and  create  new  sound 
effects.  The  Amiga  version  plays  up 
to  16  simultaneous  sound  channels 
in  stereo. 

Accolade/FTL  Games  (Cuper- 
tino, California)  has  released  Sun- 
dog:  Frozen  Legacy  for  the  ST. 
Originally  written  for  the  Apple  II 
series,  Sundog  is  a  graphics  strategy 
game  that  has  been  completely  re- 
designed to  take  advantage  of  the 
ST's  advanced  graphics.  Thanks  to 
a  proprietary  data-compression 
scheme,  hundreds  of  different  full- 
color  screens  are  stored  on  the  pro- 
gram disk, 

Mindscape  (Northbrook,  Illi- 
nois) is  introducing  three  programs 


Mindscape's  Deja  Vu;  A  Nightmare 
Comes  True  is  a  WiOs-style  mystery 
game  for  the  Amiga  and  Macintosh. 


for  the  Amiga  and  one  for  the  ST. 
Brataccas  ($49.95)  is  a  graphics  ad- 
venture game  for  both  computers 
that  was  developed  by  Psygnosis 
Limited  of  England,  It  was  written 
specifically  to  take  advantage  of  the 
68000  chip  inside  the  Amiga  and 
ST,  In  Brataccas,  you're  a  scientist 
who  has  invented  a  genetic  process 
for  creating  a  superbeing.  With  an 
evil  government  and  the  under- 
world in  pursuit,  you  flee  to  a  colo- 
nized asteroid,  Brataccas.  The 
object  is  to  expose  the  govern- 
ment's corruption  and  clear  your 
name.  Brataccus  is  populated  with 
nearly  60  different  characters. 

For  the  Amiga  only.  Mind- 
scape  is  releasing  The  Halley  Pro- 
ject: A  Mission  in  Our  Solar  System 
($49.95),  a  realtime  simulation  of 
the  solar  system  developed  by  Tom 
Snyder  Productions  with  help  from 
the  Massachusetts  Institute  of 
Technology;  Deja  Vu:  A  Nightmare 
Come  True  ($54.95),  a  1940s-style 
mystery  game;  and  Keyboard  Cadet 
($39.95),  a  typing  tutor.  (Incidental- 
ly, Mindscape  is  the  company 
which  wrote  the  Amiga  Tutor  sup- 
plied with  the  Amiga.) 

Abacus  Software  (Grand  Rap- 
ids, Michigan)  is  importing  a  pro- 
fessional-quality program  called  PC 
Board  Design  for  the  ST.  When  Aba- 
cus finishes  translating  this  circuit- 
designing  utility  from  German,  it 
will  sell  for  $395. 

Batteries  Included  (Richmond 
Hill,  Ontario)  was  demonstrating 
its  D.E.G.A.S.  drawing  program  for 
the  ST  with  a  slideshow  of  screens 
called  up  in  rapid  sequence  from  a 
hard  disk,  D.E.G.A.S.  started  ship- 
ping just  before  CES,  and  it's  al- 
ready a  hit — Batteries  Included 
says  that  sales  figures  for  the  first 
two  weeks  were  greater  than  for 
any  other  program  in  its  history.  ST 
and  Amiga  versions  of  the  Isgur 
Portfolio  System,  a  stock-manage- 
ment program,  are  scheduled  for 
release  later  this  year  at  $249.95. 

Q-R-S  (Buffalo,  New  York),  a 
company  that  started  back  in  1900 
by  making  music  rolls  for  player 
pianos,  is  releasing  its  digital  music 
library  for  the  Amiga  and  ST.  This 
consists  of  a  number  of  disks  con- 
taining piano  music  by  Joplin, 
Gershwin,  Liberace,  and  other  art- 
ists and  composers.  Each  disk  con- 
tains six  songs  and  sells  for  $19,95. 

Sierra  On-Line  (Coarsegold, 


and 
C-64' 


SOFIWARE 


Our  BASIC  Compilers  are 
the  complete  compiler 
and  development  pack- 
ages. Speed  up  your 
pfograms  from  5x  to  3Bx. 

Our  BASIC  Compilers 
give  you  many  options: 
flexible  memory  manage- 
ment; cfioice  of  compiling 
to  mactiine  code,  com- 
pact p-code  or  a  mixture 
of  bottl.  Also  on  tfie'iaa, 
40  or  80  column  monitor 
output  and  FAST-mode 
operation. 

The  '128  Compiler's  extensive  80-page  prosrammer's  guide  covers  compiler 
directives  and  options,  two  levels  of  optimization,  memory  usage, 
input/output  handling,  80  column  hi-res  graphics,  faster,  higher  precision 
math  functions,  speed  and  space  saving  tips,  more.  A  great  package  that  no 
software  library  should  be  without.  BASIC  128  Compiler  $59.95 

BASIC  64  Compiler    $39.95 


For  school  or  soltware 
development,  select  SUPER 
C .  Learn  to  use  one  of 
today's  most  popular  lang- 
uages on  your  Commodore 
128.  Power)  u  I  screen  editor, 
compiler,  linker-link  up  lo 
seven  modules,  I/O 
library-includes  printf  and 
fprintf.  Compile  your  C 
programs  into  fast  machine 
language.  C-128  $79.95 
C-64      $79.95 

For  the  professional  who 
wants  to  easily  create  high 
quality  charts  and  graphs 
without  programming.  You 
can  immediately  change  the 
scaling,  labeling,  axis,  bar- 
filling,  etc.  to  suit  your  needs. 
Accepts  data  from  CalcResult 
and  ft^ultiPlan.  0-128  version 
has  3X  the  resolulion  of  the 
'64  version.  Outputs  to  most 
printers.  C-12e  $39.95 
C-64      $39.95 


PowerPlan 

One  of  the  most  powerful  spreadsheets  with  integrated  graphics 
for  your  Commodore  computer.  Includes  menu  or  keyword 
selections,  online  help  screens,  field  protection,  windowing,  trig 
functions  and  more.  Power-Graph,  the  graphics  package,  is 
included  to  create  integrated  graphs  a  charts.       C-64  $39.95 


CADPAK  is  a  remarkably 
easy  to  use  drawing 
package  for  accurate 
graphic  designs. 

Using  CADPAKs  new 
dimensioning  features 
you  can  create  exact 
scaled  output  to  all  major 
dot-matrix  printers. 

This  enhanced  version  of 
CADPAK  allows  you  to 
Input  via  the  keyboard  or 
a  high  quality  llghtpen. 
Two  graphic  screens  per- 
mit you  to  COPY  from  one  screen  to  another.  DRAW.  LINE,  BOX.  CIRCLE, 
ARC,  ELLIPSE  are  but  a  few  of  the  many  selections  to  choose  from.  FILL 
objects  with  preselected  PATTERNS:  add  TEXT;  SAVE  and  RECALL  designs 
to/from  disk.  You  can  define  your  own  library  of  intricate  symbols/objects  with 
the  easy-to-use  OBJECT  MANAGEf^ENT  SYSTEM-it  will  store  up  to  104 
separate  objects.  C-12B  $59.95 

0-84    $39.95 


Not  just  a  compiler,  but  a 
complete  system  for  develop- 
ing applications  in  Pascal. 
Extensive  editor  wKh  search, 
replace,  auto,  renumber,  etc. 
Standard  J  &  W  compiler  that 
generates  fast  machine  code. 
If  you  want  to  learn  Pascal  or 
to  develop  software  using  the 
best  tools  available-SUPER 
Pascal  is  your  first  choice. 
C-128  $59.95 
C-64      $59.95 


OTHER  TITLES  AVAILABLE: 

Technical  Analysis  System 

A  sophisticated  charting  and  technical  analysis  system  for 
serious  investors.  By  charting  and  analyzing  the  past  history  of  a 
stock,  TAS  can  help  pinpoint  trends  &  patterns  and  predict  a 
stock's  future.  Enter  data  from  the  keyboard  or  from  online 
financial  services.  C-64  $59,95 

Personal  Portfolio  Manager 

Complete  portfolio  management  system  for  the  individual  or 
professional  investor.  Easily  manage  your  portfolios,  obtain 
up-to-the  minute  quotes  and  news,  and  perform  selected 
analysis.  Enter  quotes  manually  or  automatically  through 
Warner  Computer  Systems.  C-64  $39.95 

Xper 

XPER  is  the  first  "expert  system"  for  the  C-1 28  and  C-64.  While 
ordinary  data  base  systems  are  good  for  reproducing  facts, 
XPER  can  derive  knowledge  from  a  mountain  of  facts  and  help 
you  make  expert  decisions.  Large  capacity.  Complete  with 
editing  and  reporting.  C-64  $59.95 

C-12fi  nr^d  C-64  are  bad^niarks  of  Ccmmnjcre  Busir«s&  Mochioos. 


Compiler  and  Software 
Dcvdopmeoi  Sysiem 

-:-   ■                         A  ■ 

'f 

-^ 



.  xa««wt«Mtwji  %.^.      '■■ 

I                 .. .        ) 

Abacus 


nmymmii 


[!fim« 


Software 


P.O.  Box  7219Grand  Rapids,  Ml  49510-Telex709-101-Phone(616)  241-5510 

Call  now  for  the  name  of  your  nearest  dealer.  Or  to  order  directly  by  credit  card,  MC,  AMEX  of  VISA  call  (616) 
241-5510.  Other  software  and  books  are  available-Call  and  ask  for  your  free  catalog.  Add  $4.00  for  shipping 
per  order.  Foreign  orders  add  $12.00  per  item.  Dealer  inquires  welcome-1200-i-  nationwide. 


California)  has  converted  its  series 
of  3-D  graphics  adventure  games 
for  the  ST:  King's  Quest  I,  King's 
Quest  11,  and  Ylalt  Disney's  The 
Black  Cauldron.  The  King's  Quest 
games  have  been  particularly  pop- 
ular on  IBM  computers. 

Spinnaicer  Software  (Boston, 
Massachusetts)  has  converted  Fahr- 
enheit 451,  Treasure  Island,  Perry 
Mason,  Nine  Princes  of  Amber,  Ama- 
zon, and  Homework  Helper  Math  for 
the  ST. 


The  popular  eight-bit  com- 
puters weren't  ignored  by 
software  publishers,  either, 
and  some  significant  new  programs 
were  announced  for  the  Commo- 
dore 64,  128,  Apple,  IBM  PC/PCjr, 
and  Atari.  There  isn't  room  here  to 
list  them  all,  but  additional  infor- 
mation can  be  found  in  this  month's 
"News  &  Products"  section. 

One  of  the  biggest  hits  at  the 
show  was  a  graphics-oriented  oper- 
ating system  in  final  stages  of  de- 
velopment for  the  Commodore  64. 
Called  GEOS  (Graphic  Environ- 
ment Operating  System),  it's  mod- 
eled after  the  user  interface 
popularized  by  the  Macintosh  and 
adapted  by  the  Atari  ST  and  Amiga. 
GEOS  loads  from  disk  and  replaces 
the  64's  normal  operating  system.  It 
speeds  up  disk  access  by  a  factor  of 
five  to  seven  times  and  displays  a 
desktop  screen  with  pull-down 
menus,  icons,  and  windows.  You 
manipulate  these  features  by  mov- 
ing an  on-screen  pointer  with  a 
mouse  or  joystick. 

Although  some  people  were 
skeptical  that  GEOS  could  run  fast 
enough  on  an  eight-bit  machine, 
even  the  unfinished  version  at  CES 
ran  surprisingly  smoothly.  By  mov- 
ing the  pointer  to  a  menu  bar  at  the 
top  of  the  screen  and  pressing  the 
joystick  button,  you  can  select  vari- 
ous options  for  managing  files  and 
running  applications  (see  photo). 
To  rename  a  file,  for  instance,  you 
pull  down  the  File  menu  and 
choose  Rename.  The  new  filename 
you  enter  appears  on  the  directory 
or  beneath  the  program's  icon.  To 
delete  a  file,  you  point  to  its  icon, 
press  the  joystick  button,  and 
"drag"  the  icon  to  the  trash  can 
icon.  To  print  a  file,  you  drag  its 
icon  to  the  printer  icon. 

The  screen  would  get  cluttered 

40     COMPUTEI     April  1986 


The  desktop  screen  from  GEOS,  a  remarkable  Macintosh-like  operatitig  system  for 
the  Commodore  64.  It  offers  pull-down  menus,  icons,  windows,  desk  accessories,  and 
custom  type  fonts,  and  also  speeds  up  disk  access  five  to  seven  times. 


if  the  icons  for  every  file  were  dis- 
played at  once,  so  GEOS  lets  you 
flip  through  windows  as  if  they 
were  pages  in  a  book.  The  page 
number  of  the  current  window  is 
displayed  near  its  bottom  margin. 
As  the  accompanying  photo  shows, 
GEOS  uses  the  Commodore  64's 
high-resolution  graphics  screen  to 
display  a  smaller-sized  character  set. 

The  desktop  includes  a  full 
range  of  Macintosh-like  desk  acces- 
sories, such  as  a  calculator,  note- 
pad, alarm  clock,  photo  and  text 
albums  (for  transferring  data  be- 
tween applications),  and  a  prefer- 
ences window.  The  preferences 
window  lets  you  adjust  screen  col- 
ors, change  the  shape  and  speed  of 
the  pointer,  set  the  date  and  time, 
and  so  forth.  The  desk  accessories 
can  be  called  up  while  running  oth- 
er applications — if  you're  using  the 
word  processor  and  need  to  per- 
form a  calculation,  for  example,  you 
can  pop  open  the  calculator,  gel 
your  answer,  close  the  calculator, 
and  continue  writing. 

GEOS  comes  with  two  applica- 
tions: geoWrite,  a  what-you-see-is- 
what-you-get  word  processor  that 
lets  you  type  on-screen  with  several 
different  proportional  fonts,  and 
geoPaint,  a  graphics-drawing  pro- 
gram with  vertical  and  horizontal 
scrolling  that  lets  you  create  images 


as  large  as  an  8V2  X  11 -inch  page 
(80  dots  per  inch  resolution). 

The  price  for  the  entire  pack- 
age— GEOS,  the  desktop  and  desk 
accessories,  geoWrite  and  geo- 
Paint— is  $59.95.  It  was  designed 
by  Berkeley  Softworks  (Berkeley, 
California)  and  is  scheduled  to  be 
available  early  this  spring. 

Timeworks  (Deerfield,  Illinois) 
is  releasing  three  new  pro- 
grams for  the  Commodore 
128  and  one  for  the  64.  Partner  128 
($59.95)  and  Partner  64  ($49.95)  are 
desktop  management  programs 
similar  to  Borland  International's 
Sidekick  for  the  IBM  PC.  Both  Part- 
ner programs  include  a  multifunc- 
tion business  calculator,  memo  pad, 
appointment  calendar,  typewriter, 
address  book,  phone  book,  enve- 
lope addresser,  and  screen  printer. 
SwiftCalc  128  is  a.  spreadsheet 
that  takes  advantage  of  the  128's 
80-column  mode.  It  has  program- 
mable keys,  multilevel  sorting,  and 
several  ways  of  charting  data  (in- 
cluding 3-D)  that  can  be  shown  on 
the  screen  or  printed  out.  Those 
who  already  own  the  original  Swift- 
Calc for  the  Commodore  64  can 
upgrade  to  the  128  version  for  a 
nominal  fee.  Timeworks  has  also 
adapted  Sylvia  Porter's  Personal 


Financial  Planner  ($69,95)'  for  the 
128's  80 -column  mode. 

Cardco  (Wichita,  Kansas)  an- 
nounced a  Sidekick-style  product, 
too.  Called  Side  Saddle  (Cardco  is 
negotiating  with  Borland  for  the 
Sidekick  name),  it  offers  quick  ac- 
cess to  a  calculator,  appointment 
calendar,  telephone  directory/  dial- 
er, memo  pad,  screen  printer,  and 
disk  functions.  It  comes  on  a  car- 
tridge for  the  Commodore  64,  with 
a  128  version  to  follow.  Another 
interesting  Cardco  program  is 
Freeze  Frame,  a  screen  printer  that 
Cardco  claims  can  capture  any  64 
screen  on  paper,  even  with  com- 
mercial software.  It  works  with  any 
printer  that  emulates  the  Commo- 
dore 1525,  and  all  Epson-  and 
Okidata-compatibles.  A  128  ver- 
sion of  Freeze  Frame  is  also  planned. 

The  Commodore  128  got  an- 
other boost  when  Cardco  an- 
nounced its  Personal  Productivity 
Series  for  the  128's  CP/M  mode. 
The  first  three  products  in  the  series 
are  Personal  Accoutitanl,  a  financial 
manager  for  home  or  small  busi- 
ness; Personal  Inventory,  for  figuring 
your  net  worth;  and  Personal  Time 
Manager,  which  can  handle  up  to  26 
events  for  as  many  as  240  people. 
Each  program  sells  for  $39.95. 

In  addition  to  software,  Cardco 
announced  three  hard  disk  drives 
for  the  64  and  128.  Available  in  late 
March  for  the  64  and  shortly  after- 
ward for  the  128,  the  drives  will 
come  in  5-,  10-,  and  20-megabyte 
capacities  for  $599.95,  $899.95,  and 
$1,299.95,  respectively.  They're  ca- 
pable of  loading  a  full-function 
spreadsheet  program  in  IVi 
seconds. 

Access  Software  (Salt  Lake 
City,  Utah)  is  releasing  a  number  of 
products  for  the  Commodore  64, 
128,  Atari,  and  Apple.  The  Much 
128  Enhancement  Package  is  a  car- 
tridge and  disk  for  the  64  and  128. 
When  the  cartridge  is  plugged  in,  it 
senses  whether  a  1541  or  1571  disk 
drive  is  connected  and — in  the  case 
of  the  128 — which  mode  is  active. 
Then  it  engages  or  disengages  disk 
speed-up  routines  as  appropriate. 
Typically  there's  a  fivefold  increase 
in  loading  speed  with  either  the 
1541  or  1571.  The  cartridge  also  has 
a  system  reset  switch.  In  addition, 
the  Mach  128  disk  includes  a  disk 
organizer  utility,  two  machine  lan- 
guage monitors,  and  a  program  that 


expands  BASIC  workspace  by  4K. 
The  price  is  $49.95. 

The  Development  System 
($79.95)  is  a  professional  macro  as- 
sembler and  text  editor  for  the  Com- 
modore 128  (128  or  64  mode)  and 
64.  It  includes  Spritemaster,  a  utility 
for  creating  and  animating  sprites 
with  machine  language  programs. 

leader  Board,  The  Pro  Golf  Sim- 
ulator is  a  3-D  game  that  offers  a 
perspective  view  of  the  golf  course. 
It's  one  of  the  most  detailed  sports 
simulations  we've  ever  seen,  with 
multiple  18-hole  courses,  handi- 
capping, a  wide  range  of  clubs,  and 
numerous  other  variables.  The  Com- 
modore 64  version  should  be  avail- 
able immediately  for  $39.95.  Inside 
Story — The  Anatomy  Learning  Sys- 
tem is  an  educational  program  udth 
50  high-resolution  graphics  screens 
that  let  you  explore  the  inner  work- 
ing of  the  human  body.  For  the  Com- 
modore 64,  the  price  is  $34.95. 

For  the  Atari  400/800,  XL,  XE, 
and  Apple  II  series.  Access  Soft- 
ware is  releasing  Raid  Over  Moscow 
and  Beach-Head  U:  The  Dictator 
Strikes  Back,  popular  games  previ- 
ously available  for  the  Commodore 
64  and  128.  In  Raid  Over  Moscow, 
the  Soviets  have  launched  a  nuclear 
attack  on  North  America;  your  job 
is  to  deploy  stealth  bombers  from 
an  orbiting  space  station  to  destroy 
the  warheads  before  they  hit.  It  re- 
quires at  least  48K  RAM  and  sells 
for  $34.95.  Beach-Head  11  is  the  se- 
quel to  Beach-Head  and  features 
speech  synthesis,  multiple  screens, 
and  the  choice  of  playing  another 
person  or  the  computer.  It  requires  at 
least  48K  RAM  and  sells  for  $39.95. 

Access  has  signed  an  agree- 
ment with  Multibotics,  Inc.  (Woods 
Cross,  Utah)  to  market  its  line  of 
robotic  construction  sets.  The 
sets — for  youngsters  and  adults — 
contain  snap-together  connectors, 
gears,  shafts,  clutches,  wheels,  elec- 
tric motors,  and  other  parts  that 
make  it  possible  to  build  all  sorts  of 
motorized  contraptions  that  can  be 
controlled  by  a  personal  computer. 
You  can  also  experiment  with  digi- 
tized speech  or  temporarily  turn  a 
computer  into  a  voltmeter  or  oscillo- 
scope. Four  different  Multibot  sets 
are  avaOable  from  $59.95  to  $199.95. 
Interfaces  are  ready  for  the  Commo- 
dore 64  and  128,  and  Access  is  work- 
ing on  interfaces  for  Atari,  Apple, 
Amiga,  and  IBM  computers. 


If  you've  got  a  good  memory,  you 
might  recall  reading  some  re- 
views about  a  year  ago  of  a  Com- 
modore 64  word  processor  called 
SkiWriter.  Although  the  reviews 
were  good,  marketing  problems 
kept  the  program  from  appearing 
on  store  shelves.  Now  it's  been  ac- 
quired by  a  British  company,  Mas- 
tertronic  (U.S.  offices  in  Frederick, 
Maryland).  Two  changes  were 
made — the  built-in  telecommuni- 
cations feature  was  dropped,  and 
the  program  is  being  sold  on  disk 
instead  of  cartridge — but  the  price 
has  been  chopped  from  $69.95  to 
$15.  There's  also  a  Commodore  128 
and  Apple  II  version.  At  the  same 
time,  Mastertronics  is  introducing 
two  more  programs  for  the  Com- 
modore 64:  Busicalc  3,  a  spread- 
sheet, and  Instant  Recall,  a  filer  that 
stores  up  to  30,000  characters  of 
data.  Both  of  these  products  sell  for 
$15,  too. 

Mindscape  (Northbrook,  Illi- 
nois) is  bringing  out  The  Luscher 
Profile  (Apple,  Commodore  64, 
IBM  PC,  and  Mac),  which  con- 
structs a  psychological  profile 
based  on  a  person's  reactions  to 
colors  and  shapes;  The  American 
Challenge:  A  Sailing  Simulation  (Ap- 
ple and  IBM),  an  unusual  America's 
Cup  simulation  that  can  be  played 
by  two  people  in  remote  locations 
using  computers  and  modems;  Dick 
Francis'  High  Stakes  (Apple  and 
IBM),  an  interactive  text  adventure 
that  puts  you  in  the  role  of  a 
wealthy  English  horse  owner;  a 
talking  Macintosh  version  of  Racier, 
the  AI  (artificial  insanity)  program 
that  holds  bizarre  conversations 
with  humans;  and  Stephen  King's 
The  Mist  and  James  Bond:  A  View  To 
A  Kill  (Apple,  IBM,  and  Mac),  text 
adventures  based  on  popular  thrill- 
ers. All  of  these  programs  are 
$39,95,  except  for  Racier,  which  is 
$44,95, 

And  finally,  if  you  can  spare 
$39.95,  you  can  now  indulge  any 
Rambo  fantasies  you  might  have 
with  a  Mindscape  program  called 
Rambo:  First  Blood  Part  11.  But  Rambo 
isn't  the  shoot-em-up  action  game 
you  might  expect — it's  a  text  ad- 
venture. One  of  its  features  is  a 
sophisticated  parser  that  lets  you 
communicate  in  plain  English 
(which  is  more  than  the  movie 
character  Rambo  can  do).  It  runs  on 
the  Apple,  IBM,  and  Macintosh.  © 

April  1986     COMPUTEI      41 


Tug-A-War 

Mark  Tuttle,  Submissions  Reviewer 


Don't  be  fooled  by  the  apparent  sim- 
plicity of  this  two-player  strategy 
game.  It  looks  easy  on  the  surface,  but 
it's  a  stiff  test  of  your  concentration 
and  ability  to  think  ahead.  The  origi- 
nal version  was  written  for  the  Com- 
modore 64.  We've  added  new  versions 
for  the  Atari  400/800,  XL,  and  XE, 
Apple  Il-series  computers.  Atari 
520ST,  Amiga,  IBM  PC/PCjr,  and  the 
TI-99/4A.  Since  the  game  is  based  on 
colors,  every  version  requires  a  color 
monitor  or  TV.  The  IBM  version  re- 
quires BASICA  and  a  color /graphics 
adapter  for  the  PC  or  Cartridge 
BASIC  for  the  PCjr.  The  Atari  version 
requires  at  least  16K  of  RAM,  and  the 
Amiga  version  requires  at  least  512K. 


Nearly  everyone  has  played  tug  of 
war  at  one  time  or  another.  The 
traditional  game  pits  two  players  or 
teams  at  opposite  ends  of  a  rope.  At 
the  middle  of  the  rope  is  a  flag,  and 
each  side  tries  to  pull  the  flag  into 
its  territory.  "Tug-a-War"  is  based 
on  a  similar  concept.  In  this  version, 
the  flag  is  replaced  with  a  round 
ball  shape,  and  each  player  tries  to 
maneuver  the  ball  onto  his  or  her 
side  of  the  screen.  Like  many  two- 
player  games,  the  difficulty  of  Tug- 
a-War  depends  somewhat  on  the 
intelligence  of  your  opponent.  But 
even  at  the  simplest  level,  you'll 
find  that  skill  and  foresight  are  es- 
sential to  success. 

Type  in  and  save  the  appropri- 
ate program  below.  The  rules  are  the 
same  for  every  version  (except  Atari 
520ST — see  special  instructions). 

Battle  Of  The  Colors 

When  you  run  Tug-a-War,  two  sets 
of  colored  boxes  appear,  one  above 
the  other.  The  lower,  longer  series 
of  squares  is  the  playing  field.  Near 
the  middle  of  the  pi  ay  field  area  is  a 

42     COMPUTB     April  1986 


round  ball;  the  outermost  boxes  at 
each  end  of  the  playfield  represent 
each  player's  home  position.  The 
players  alternate  turns,  each  trying 
to  move  the  ball  in  their  own  direc- 
tion, until  it  reaches  one  of  the 
home  squares. 

So  far,  so  good — but  how  do 
you  move  the  ball?  It's  done  not  by 
pulling  a  rope,  but  by  changing  the 
colors  of  boxes  in  the  playfield.  The 
color  of  the  square  under  the  ball 
determines  which  direction  it 
moves  and  how  far  it  travels.  On 
any  given  turn,  the  ball  can  move 
either  one  or  two  squares  to  the  left, 
or  one  or  two  squares  to  the  right. 
At  the  top  of  the  screen  are  four 
boxes  that  show  you  which  colors 
are  linked  to  which  directions.  For 
instance,  the  leftmost  box  shows 
you  which  color  makes  the  ball 
move  one  square  to  the  left.  The 
next  box  to  the  right  shows  you 
which  color  makes  it  move  two 
squares  to  the  left.  The  second  pair 
of  boxes  show  you  which  colors 
make  the  ball  move  in  the  opposite 
direction,  to  the  right.  By  changing 
the  color  of  the  box  where  the  ball 
is  currently  located,  you  can  make  it 
move  toward  your  home  square. 

The  playfield  contains  11  box- 
es (9  in  the  TI  version,  10  in  the 
Atari  ST  version).  When  the  game 
begins,  each  of  these  boxes  is  ran- 
domly given  one  of  the  four  colors 
shown  at  the  top  of  the  screen.  On 
each  turn,  you  may  change  the 
color  of  one,  several,  or  all  of  the 
boxes  (however,  you  must  always 
change  at  least  one  box).  Below 
each  box  is  a  number  which  repre- 
sents its  distance  from  the  home 
position  of  the  player  whose  turn  it 
is.  For  instance,  if  you  are  the  player 
on  the  left,  then  on  your  turn  the 
boxes  are  numbered  1,  2,  3,  etc., 
from  left  to  right  (the  tenth  box  is 
marked  with  a  0,  and  the  eleventh 


with  an  A).  When  it's  the  right  play- 
er's turn,  the  numbering  is  reversed 
(the  rightmost  box  is  1,  etc.). 

To  take  a  turn,  you  must  select 
a  number  that  corresponds  to  the 
numbers  shown  below  the  boxes  in 
the  playfield.  This  is  done  by  press- 
ing a  single  key.  Press  a  number 
key  from  1-0  to  select  one  of  the 
first  ten  values,  or  press  the  A  key 
to  choose  the  eleventh  box.  The 
number  you  choose  determines 
how  many  boxes  change  color.  For 
instance,  if  you  press  1,  only  one 
box  (the  one  nearest  your  home 
square)  changes  color.  If  you  press 
2,  the  two  boxes  nearest  your  home 
box  change,  and  so  on. 

Where  do  the  new  colors  come 
from?  Every  box  cycles  through  the 
same  series  of  four  colors  shown  in 
the  uppermost  set  of  boxes,  going 
from  left  to  right.  For  example,  if 
the  colors  shown  there  are  white- 
blue-red-purple  (the  exact  colors 
may  be  different  on  your  com- 
puter), then  a  white  square  always 
changes  to  blue;  a  blue  square  al- 
ways changes  to  red;  a  purple 
square  changes  to  white,  and  so  on. 
In  other  words,  the  box's  current 
color  determines  which  color  it  gets 
after  the  next  color  change. 

Though  every  turn  involves  at 
least  one  color  change,  the  ball 
doesn't  necessarily  move  on  every 
turn.  It  only  moves  when  you 
change  all  the  boxes  between  your 
home  position  and  the  current  posi- 
tion of  the  ball.  For  example,  if  the 
ball  is  three  boxes  away  from  your 
home  square,  then  you  must 
change  the  color  of  at  least  three 
boxes  in  order  to  move  it  at  all. 

Foresight  Rewarded 

As  you  can  see,  there's  much  more 
to  this  game  than  appears  on  the 
surface.  At  first  you  might  be 
tempted  to  try  to  move  the  ball  as 


COMPUTEi'S 


Ewrvthlas  you  need  for  successful, 
entortalttltts,  and  challenging 
nrogramming  on  vom  Amiga,  Atari 
SI  or  Commodore  12B  comuuter. 


COMPUTErs  128  Programmer's  Guide 

ISBN  0-87455-031-9 
Editors  of  COMPUTE!    464  pages 

Written  and  compiled  by  the  most  technically  proficient  authors  in 
consumer  computing  today,  the  technical  staff  of  COIVIPUTE! 
Publications,  this  guide  to  the  powerful  Commodore  128  computer 
contains  a  wealth  of  infomiation  for  every  programmer.  Explore 
BASIC  7.0  through  countless  hands-on  examples  and  sample 
programs.  Leam  how  to  create  dazzling  graphics  and  sophisticated 
sounds  in  both  BASIC  and  machine  language.  See  how  to  program 
peripherals,  such  as  disk  drives,  printers,  and  modems.  Enter  the 
world  of  CP/M,  just  one  of  the  three  modes  of  the  128.  There  are 
even  chapters  introducing  you  to  machine  language  programming 
and  the  computer's  method  of  managing  memory.  COMPUTERS 
128  Pmgmmmer's  Guide  includes  numerous  appendices  covering 
everything  from  error  messages  to  memory  maps. 
$16.95 


Look  for  these  new  books  at  a 
bookstore  or  a  computer  store  near  you. 
Or  order  directly  from  COMPUTE!  Books. 
Caii  toll-free  1-800-346-6767.  In  NY  call 
212-887-8525. 


£acA  book  Is  carefullv  written  In 
COfAPUTEVs  li¥elf,  understandable 
style  to  help  even  beginning 
grogrammers  learn  the  ins  and  outs 
of  their  gersonal  computers. 


COMPUTERS  ST  Programmer's  Guide 

(M7455-023-8 

Editors  of  COAflPUTE! 

Complete  and  comprehensive,  yet  easy  to  understand, 
COMPUTEI'S  ST  Programmer's  Guide  is  a  must-buy  for  any 
Atari  ST  owner.  The  technical  staff  of  COMPUTE!  Publications  has 
put  together  a  reference  guide  to  programming  that  takes  the 
reader  through  every  aspect  of  this  newest  Atari  personal 
computer.  Logo  and  BASIC,  the  two  programming  languages  now 
available  for  the  machine,  are  explored  in  detail.  From 
programming  concepts  to  wrffing  programs,  the  scores  of  ready-to- 
type-in  examples  show  just  what  can  be  done,  and  how  to  do  it. 
Advanced  features  of  this  new-generation  computer,  such  as  GEM 
and  TOS,  the  ST's  user  interface  and  operating  system,  are 
illustrated  as  readers  write  their  own  applications.  Valuable 
appendices  provide  infonnation  programmers  need,  including  GEM 
VDI  opcodes  and  a  list  of  ST  resources, 
$16.95 


COMPUTEi'S  Amiga  Programmer's  Guide 

0-87455-028-9 
Edited 

Covering  AmigaDOS,  BASIC,  Intuition,  C,  machine  language,  and 
the  other  important  programming  tools  which  accompany  the  new 
Amiga,  COMPUTEI'S  Amiga  Programmer's  Guide  is  a  clear  and 
thorough  guide  to  the  inner  workings  of  this  fascinating,  new- 
generation  computer.  The  great  speed  of  its  68000  microprocessor. 
coupled  with  the  versatility  of  the  Amiga-specific  graphics  and 
sound  chips,  makes  the  Amiga  one  of  the  most  powerful 
computers  available  today. 
$16.95 


COMPUTEi^  Publicationsjnc.^ 


One  of  ttie  ABC  PuWiMiing  Companies 


COMPUTE!  books  are  available  in  the  U.K.,  Europe,  the  Middle  East,  and 
Africa  from  Holl  Saunders,  Ltd.,  1  St  Anne's  RcHd,  Eastbourne,  East 
Sussex  BN21  SUN,  England. 


often  as  possible.  But  that's  usually 
a  losing  strategy.  Remember,  the 
direction  the  ball  moves  depends  on 
the  color  of  its  square  before  you 
take  the  turn. 

In  many  cases,  you'll  want  to 
move  the  ball  only  if  it's  on  a  color 
that  moves  it  toward  your  goal.  But 
like  other  games  of  strategy,  Tug-a- 
War  rewards  the  player  who  looks 
beyond  the  current  move  and  tries 
to  set  things  up  for  future  moves; 
sometimes  it's  wise  to  make  a 
small,  temporary  sacrifice  in  order 
to  benefit  later  in  the  game.  Because 
the  boxes  change  colors  in  the  same 
sequence,  the  effect  of  your  own 
move  is  always  completely  predict- 
able. However,  since  a  single  turn 
can  change  the  color  of  many  box- 
es, dramatic  changes  of  fortune  are 
also  possible. 

Amiga  And  520ST  Versions 

Since  the  mouse  is  an  integral  sys- 
tem feature  on  both  the  Amiga  and 
ST,  both  of  these  versions  substi- 
tute mouse  input  for  keyboard  in- 
put. To  select  a  square,  simply 
move  the  mouse  pointer  to  the  de- 
sired box  and  press  the  left  mouse 
button.  Because  keyboard  prompts 
are  unnecessary,  no  numbers  are 
displayed  below  the  playfield 
boxes. 

Before  entering  BASIC  to  load 
the  ST  version,  you  should  switch 
to  the  low-resolution  graphics 
mode  (use  the  Set  Preferences  op- 
tion in  the  desktop's  Options 
menu).  Also,  if  your  ST  has  512K 
and  a  disk-based  operating  system, 
before  running  the  program  you 
should  turn  off  buffered  graphics 
(controlled  by  the  Buffer  Grph  op- 
tion in  the  Settings  menu;  it's  off 
when  no  check  appears  beside  the 
option  in  the  menu).  The  standard 
520ST  leaves  only  about  5K  free  for 
BASIC  programs,  so  Tug-a-War 
won't  fit  into  memory  unless  the 
buffered  graphics  option  is  turned 
off.  The  program  fits  with  buffered 
graphics  switched  on  only  if  you 
have  a  1040ST,  or  a  520ST  with 
memory  expansion,  or  a  520ST  that 
has  been  upgraded  with  the  TOS 
operating  system  in  ROM  chips 
(Read  Only  Memory). 

The  Amiga  version  uses  the 
computer's  built-in  speech  feature 
to  announce  the  players'  turns.  In 
other  respects,  these  games  work 
exactly  like  the  others, 

44     COMPUTEI      April  1 986 


For  instructions  on  entering  these  listings, 
please  refer  to  "COMPUTEt's  Guide  to  Typing 
In  Programs"  in  this  Issue  of  cOMPutEi. 


"Tug-a-War"  for  the  Commodore  64  and 
128  is  a  game  that  looks  simple,  but  de- 
mands good  concentration  and  foresight. 

Program  1 :  Tug-A-Wor  For 
Commodore  64/128 


jj  100 


CE  110 


DM 

120 

QG 

130 

KE 

140 

AO 

150 

DG 

160 

RS  170 


HK  180 


FQ 

190 

CB 

210 

SF 

220 

HR  230 


MA 

240 

BR 

250 

RB 

260 

XR 

270 

POKE53  280 , 0 : PRINT " ! CLR  J 

"; :BC=53281 iPOKEBC, 5: PC 

(1)=5:PC(2)=7:PS=6:CR=1 

iPL=l:X=20 

B=5  5715:A5="OEY3PlDOWNi 

t3    LEFTJIH^    TnHDOWN} 

13    LEFT)LEP3@":P?(1)="G 

REENlRVSTlBLK)  lOFFj 

I  LEFT  J " : PS ( 2 )  =  " YELLOW" : 

B?="i2  UPJ" 

TM?="lHOME) 19  DOWK]":Q$ 

=  "lBVSHBLKJ134  SPACES  1 

":DIHCL(ll) 

FORI=0TO23:PRINT"lRVSj 

{BLK)i39  SPACES)'" 

POKE1063+(40*I), 160:POK 

E55335+(40*I),0:NEXT 

PRINT"lRVSi {39  SPACES) 

I  HOME) ":POKE2023, 160 :P0 

KE56295,0 

PRINT '■  [HOME  )"SPC(  15)  " 

i RVS  J TUG-A-WAR " : PRINTSP 

CC13)"ID0WN) iRVSJlWHTi" 

A5B$" iRED) "A?BS"lBLKi 

lCyNj"A?B?"lPURt"ASB? 

PRINTSPC(14) "lBLKjl"SPC 

(2)"2"SPC(3)"1"SPC(2V'2 

{DOWN)":PRINTSPC{15) " 

iRVS)<C"SPC(5) "C>" 

GOSUB620 : PRINTTMS " 

IDOWNJUVS!     IGRN)"ASBS; 

:F0RZ=lTOll:Y=INT(4*RND 

(I))+1:CL(Z)=Y:P0KE646, 

Y 

PRINT "{ RVS )"A?B$; :NEXTZ 

:PRINT"lYEL| {RVSJ "A? 

P0KE646,PEEK(B)ANDi5:PR 

IKTTM?"U    DOWN)  "SPC(X)  " 

1 RVS ) Q" : POKEBC , PC ( PL ) 

PRINTTH?"U4    DOWN)"SPC( 

18) "(RVSJlBLK) 

13    SPACES j" 

AN=0:PRINTTM$SPC(7) " 

110  DOWN) [BLKj lRVS)HOW 

I  SPACE) MANY  TO  CHANGE 

(off) "PS (PL) 

PRINTSPC(17 ) "iDOWNj 

IRVS) (1-A) [2  DOWNj 

{3  LEFT)il3lLEFT)"; 

POKE204 , 0  I POKE198 , 0 : WAI 

T198,l :GETMT5 

IFASC(MTS ) <480RASC (MT? ) 

<>65ANDA3C{MT5)>57THEN2 

50 

POKE204 ,1:1 FMT5= "A"THEN 

AN=11 :MT5=" [LEFT jALL"tG 


OTO300 
CR  '280  IFMT5="0"THENAN=10:MT?= 

"10":GOTO300 
HC  290  AH=VAL(MT$) 
KM  300  PRINT" I  2  LEFTJ 

(5  SPACES} {3  LEFT)"MT$ 
?FS  310  IFAN<1ORAN>11THEN220 
FF  320  IFPL=2THENAN=12-AN:GOTO 

440 
HE  330  IFAN<PSTHENCK=1 
KQ  340  F0RQ=1T0AN:IFCL(Q)=4THE 

NCL(Q)=1:GOTO360 
GE  350  CL(Q)=CL(Q)+1 
KJ  360  NEXTQ:PRINTTM5 rPRINT" 

lBLK)iRVSj  IGRN)"ASBS; : 

F0RZ=1T011 : P0KE646 , CL ( Z 

) : PRINT" { RVS )"A$fl5; 
QD  370  NEXTZ:PRINT" lYEL j iRVS) " 

A5;P0KE646,PEEK(B)AND15 

: PRINT"! HOME) 111  DOWN)" 

SPC(X)"SRVSj  " 
FH  380  IFCK=1THENCK=0:GOTO400 
MH  390  ONPEEK(B)AND15GOSUB490, 

500,510, 520 
BF  400  IFPS<:1THENPL=1:WC=5  :B  =  5 

5698:X=2:GOTO530 
DP  410  IFPS>11THENPL=2:WC=7 :B= 

5  5  734:X=3Q !GOTO530 
KD  420  IFPL=lTHENPL=2:GOSUB64fl 

:GOSUB630:GOTO210 
HE  430  PL=1 :GOSUB640: PRINT" 

U0  UP) ":GOSUB620:GOTO2 

10 
XH  440  FORQ^ANTOll 
DH  450  IFAN<1ORAN>11THEN2  2  0 
BD  4^0  IFAN>PSTHENCK=1 
GJ  470  IFCL(0)=4THENCL(Q)=1 :G0 

TO360 
HB  480  CL{Q)=CL(Q)+1:GOTO360 
JX  490  B=B+6:X=X+6:PS=PS+2 :RET 

URN 
PA  500  B=B-3 :X=X-3 :PS=PS-1 :RET 

URN 
XM  510  B=B-6:X=X-6:PS=PS-2 :RET 

URN 
BE  520  B=B+3:X=-X+3;PS=PS+1:RET 

URN 
FF  530  POKE646,PEEK(B)AND15:PR 

INT "(HOME) 111  DOWN)"SPC 

(X)"lRVS)Q":PRINTTM?" 

110  DOWN)"^; 

PG  540  F0RE=1T05:PRINTQ?:NEXT: 
GOSUB640 :GOSUB640 

FM  550  PRINT "(home! Ill  DOWN)"S 
PC(11)PS(PL) "  IS  THE  WI 
NNER":Z=WC:F0RI=1T011 :P 
OKEBCZ 

CP  560  IFZ=0THENZ=WC:GOSUB610: 
NEXT 

Z=0:GQSUB610:NEXT 
POKEBC, 15 :PRINTTM?SPC{1 
1)"U0  DOWN)  lRVS)LIKE  T 
0  PLAY  AGAIN12  DOWN) 
(11  LEFT) (RVS )Y/N" 
POKE198,0:WAIT198,l!GET 
MT? !IFMT5<>"N"THENRUN 
POKE198,0!SYS198 
FORP=1TO200:NEXTP:RETUR 
N 

CG  620  PRINTTM$"(5  DOWN) [RVS) 
[BLK) [Z  SPACES ]<C  1 
[2  SPACES) 2(2  SPACES) 3 
12  SPACES )4i 2  SPACES) 5 
12  SPACESj6(2  SPACES)? 
12  SPACES) 8 (.2  SPACES) 9 
12  SPACES)0(2  SPACES) A" 
: RETURN 

AA  630  PRINTTMS "(5  DOWNS (RVS) 
IBLK)15  SPACES) A 
12  SPACES )0( 2  SPACES) 9 
12  SPACES) 8(2  SPACES) 7 
(2  SPACES  16(2  SPACES) 5 


SJ 

570 

BP 

580 

RA 

5  90 

JC 

600 

QC 

610 

From  the  publishers  of  COMPUTE! 


April  1986 
COMPUTE!  Disk 


All  the  exciting  programs  from  the  past  three  issues  of  COMPUTE!  are  on 
one  timesaving,  error-free  floppy  disk  that  is  ready  to  load  on  your  Com- 
modore 64  and  128  computers.  The  April  1986  COMPUTE!  Disk  contains 
the  entertaining  and  useful  Commodore  64  and  128  programs  from  the 
February,  March,  and  April  1986  issues  of  COMPUTE!. 

The  April  1986  COMPUTE!  Disk  costs  $12.95  plus  $2.00  shipping  and 
handling  and  is  available  only  from  COMPUTE!  Publications. 

For  added  savings  and  convenience,  you  may  also  subscribe  to  the  COM- 
PUTE! Disk.  At  a  cost  of  only  $39.95  a  year  (a  $12.00  savings],  you'll  receive 
four  disks,  one  every  three  months,  Each  disk  will  contain  all  the  programs 
for  your  Commodore  machine  from  the  previous  three  issues  of 
COMPUTE!. 

This  is  an  excellent  way  to  build  your  software  library  while  you  enjoy  the 
quality  programs  from  COMPUTE!. 

Disks  and  subscriptions  are  available  for  Apple,  Atari,  Commodore  64  and 
128,  and  IBM  personal  computers.  Call  for  details. 

For  more  information  or  to  order  the  February  1986  COMPUTE!  Disk,  call 
toll  free  1-800-346-6767  [in  NY  212-265-8360)  or  write  COMPUTE!  Disk, 
P.O.  Box  5038,  F.D.R.  Station,  New  York,  NY  10150. 


COMPUTE!  Publicationsjnc© 

One  ot  the  ABC  PuDiishmg  Companies  ^^^ 


12    SPACES1412    SPACES} 3 
12    SPACES] 21 2    SPACES ]1 
ISPACE)C>": RETURN 
AQ    640    PRINTTM?"!5    DOWNHRVS] 
{BLKil39    SPACESj":RETUR 
N 


'<!  !>" 


rfliiilE'illi 


RED'S    TURN 


_•      -  *  •      r-o« 


This  version  of  "Tug-a-War"  runs  on  ail 
Atari  400,  800,  XL,  and  XE  computers. 

Program  2:  Tug-A-War  For 
Atari  400/800,  XL,  XE 

Version  by  Kevin  Mykytyn,  Editorial 
Programmer 

Q:  10  CB  =  PEEK  (  106) -8:  POKE  10 
6, CB-4: GRAPHICS  1B:DIM 
C« (4) , CDL( 11), MOV (4> , 
K$  (  1  )  :  CS="Ztiz=J" 
1120  MOV  (  1  )  =-1  :  MDV  (2)  =-2:  MO 
V(3) =1 : M0V(4) =2: OPEN  # 
1,  4,  8,  "K:  ■' tEDSUB  190:3 
OSUB  230 
KL  30  BP  =  i:PL  =  0 
(IP  40  PL=  (PL  =  0)  ;eoSUB  290:PO 

KE  5324B, 72+BtBP 
NK  50  BET  #1  ,  K:  Kt  =  CHR«  CK)  :  IF 
K«="A"  THEN  SP=11:G0T 
0  90 
EB  60  IF  K*="0"  THEN  SP=10:B 

OTO  90 
HF  70  IF  KS<"1"  OR  P:*>"9"  TH 

EN  50 
DL  B0  SP  =  VAL<K*! 

CK  90  IF  tPL  =  0  AND  12-SP>BP> 
DR  (PL=1  AND  SP<BP>   T 
HEN  120 
KO  100  BP  =  BP  +  MOV  (CDL  (BPM  :  IF 

BP>12  THEN  BP=12 
HI1110  IF  BP  =  -1  THEN  BP  =  0 
KI  120  GOSUB  320 
LK  130  IF  BP>0  AND  BP<12  THE 

N  40 
B6  140  POKE  5324B,  72  +  a«BP:P0 

SITIDN  4,9 
EN  150  IF  BP  =  0  THEN  PRINT  #i 
;  "  BLUE  WINS  1   " : GOTO 
170 
BJ  160  PRINT  #6;"  RED  WINS! 


CI  170  POSITION  0,  1 
i;  "  t3  SPACES 
y  key<3  SPAC 

BK  180  6ET  «1  ,  K:  GOT 

JH  190  NS  =  CBt256:  PO 
5: PRINT  #i; " 
IT" 

KF  200  FOR  A  =  0  TO  1 
NS+A, PEEK(57 
XT  A 

FC210  POKE  756, CB 
464  TD  NS+47 
126SNEXT  A 

CO220  FDR  A  =  NS+153 
920:PDKE  A,0 
OR  A=NS+1596 
03:PaKE  A+25 
E  A+12a, 126 

46    «}WUIB     April  1986 


1  :PRINT  * 
>  press  an 
ESJ  " 
0  30 

SITION  5, 
PLEASE  WA 

023: POKE 
344+A) : NE 

FDR  fl=NS+ 
1:P0KE  A, 

6  TD  NS+1 
;NEXT  A:F 
TO  NS+16 
6, 126: PDK 
NEXT  A 


SI  230 


JB  240 


FP  250 


DJ  260 


KL  270 


in  280 


U   290 
FE  300 


BK  310 


PO  320 
n   330 


PE  346 


LH  350 


PDKE 

1:PD 

5324 

3:P0 

E  70 

FDR 

601 

EXT 

TURN 

4 

PR  IN 

SITl 

1  2 

:  PRI 

QSIT 

"^ 

eB=p 

(561 
KE  G 
POST 
TO  1 

1  )  ;  C 
CS  (□ 
PDSI 

6;  " 

U"  :  R 
POSI 
IF  P 
;  "BL 
ON  4 
RINT 
NT  # 
PRIN 
'■:  PO 
#6;  " 
STE 
NEXT 
IF  P 
FOR 
50:  N 
FOR 
P  -1 
:ReT 
COL  ( 
L(A) 
6:PR 
COL  ( 


559 
KE  5 
9,  16 
KE  5 
4,  15 
A  =  NS 
f?EAD 
A:PO 

:  DA 

T  «6 

ON  6 
12" 
NT  tt 
ION 
SI" 
EEK  ( 
)  :  PD 
B+16 
TION 
1  :  D  = 
DL  (A 
,D)  ; 
TION 


, 46: PDKE  623, 
3250, 72:PDKE 
a:PDKE  53277, 
4279, CB+4: POK 

PDKE  705,52 
+1598  TO  NS+1 

B:PDKE  A,B:N 
KE  706, 132: RE 
TA  24,60,60,2 

; " {CLEAR} " : PO 
, 0: PRINT  #6; " 
: POSITION  6, 1 
6  ;  '■  Z  pi  2  f:  '■  :  p 
7,2:PRINT  #6; 


560> 
KE  B 

,6 

4,  6 
INT  ( 
)  =Q: 
:  NEX 

0,  1 


+256»PEEK 
B+10, 6: PO 

:FOR  A=l 
RND (1 ) «4+ 
PRINT  #6; 
T  A 
1:PRINT  « 


ETUR 
TION 
L=l 
UE'  S 
,5:F 

»6; 
6;  "0 
T  «6 
SITI 
A0"; 
P  -1 

A:  R 
L  =  0 
A=l 
EXT 
A=ll 
:  GOS 
URN 
A)  =C 
=  4» 
ENT 
A)  ) 


N 

4,9 
THEN 

TUR 
DR  A 
A;  :  N 
A"  :  R 
;  "RE 
ON  4 
:  FOR 
:  PRI 
ETUR 
THEN 
TD  S 
A:  RE 

TO 
UB  3 


PRIN 
N"  :  PD 

1  TD 
EXT  A 
ETURN 
D'  S  T 
,  5:  PR 

A  =  9 
NT  #6 
N 

340 
P:  GDS 
TURN 
12-SP 
50:  NE 


T  #6 

SITI 

9:  P 

:  PRI 

URN 

INT 

TO  1 

;fl;  : 


UB  3 


STE 
XT  A 


DL  (  A)  +1-4*  (CO 
POSITION  3+A, 
#6; C« (COL ( A) , 
RETURN 


"Tug-a-War"  for  the  IBM  PC  and  PCjr. 

Program  3:  Tug-A-War  For 
IBM  PC/PCjr 

Version  by  Kevin  Mykytyn,  Editorial 
Programmer 

SE  10  GOTO  30 

6N  20  FOR  ROW=0  TO  2:  LOCATE  Y+RO 

W,PS*3+X: PRINT  B»:NEXT:RET 

URN 
NO   30   KEY    OFF:  SCREEN    0,0:  WIDTH    4 

0:BS=CHR*(222)+CHR*(219)+C 

HRS(221)+CHR*(31> 
HP   40    DIM   COLdl)  :BPs6:C(l>=2:C( 

2)=6:C(3)=3:C(4)=5:PL»0:RA 

NDOMIZE    TIMER 
Lft  50   MDV{l)=-l:MaV(2)=-2:MDV(3> 

=l!M0V(4)=2 
LP  60  GOSUB  190 


CI  70  PL=(PL=0)  :  GOSUB  230:  GOSUB 

240:GDSUB  180 
LA  80  K*=INKEY*:IF  K*="a"  OR  K*= 

"A"  THEN  SP=11:GDT0  110 
DJ  90  IF  KS  =  "0"  THEN  SP  =  10:GOTO 

110 
HE  100  IF  Kt<"l"  OR  K$>"9"  THEN 

80  ELSE  SP=VAL(K») 
HE  110  IF  (PL=0  AND  12-5P>BP)  DR 
CPL=-1  AND  SP<BP>  THEN  1 

30 
NL  120  BP=BP+MOV(COL(BPn  :  IF  BP> 

12  THEN  BP=12  ELSE  IF  BP= 

-1  THEN  BP=0 
NO  130  BOSUB  260:  IF  BPJ0  AND  BP< 

12  THEN  70 
LJ  140  GOSUB  230:  LOCATE  20,  15:  CD 

LOR  9: IF  BP=0  THEN  PRINT 

"  Blue  Wins'  " : GOTO  160 
OL  150  COLOR  4:  PRINT  "  Red  Wins! 

FA  160  LOCATE  23,  8:  COLOR  14:  PRIN 

T  "Press  any  key  to  play 

again": BOSUB  180 
GJ  170  A«-=INKEY«:  IF  AS=""  THEN  1 

70  ELSE  RUN 
FF  1B0  DEF  SEG=0:PDKE  1050,  PEEK  ( 

1052) : RETURN 
8£  190  CLS:  Y=3:  X=0:FDR  A=l  TO  4: 

PS=4+A: COLOR  C (A): BOSUB  2 

0:NEXT 
FE  200  COLOR  14:  PRINT  SPC(15>CHR 

»(17)"  "STRIN6«(2, 17)"   " 

CHR»(16)"   "STRING* (2, 16) 
EI  210  Y=13:X=l:  COLOR  9:PS=0:GOS 

UB  20:FOR  A=l  TO  11:Q=INT 

(RND(1)«4+1) :COL(A)=Q:CDL 

OR  C(Q):PS=A: BOSUB  20: NEX 

T: COLOR  4: PS=12! GOSUB  20 
a  220  LOCATE  23, 8,0: COLOR  10: PR 

INT  "Press  (0-9)  or  'A'  f 

or  all": RETURN 
EF  230  COLOR  IS: LOCATE  14,BPt3+2 

:PRINT  CHR$ (219) ; RETURN 
BE  240  LOCATE  20,  15:  IF  PL=0  THEN 
COLOR  4:PRINT  "Red's  Tur 

n  ":LOCfiTE  11,5:PRINT  "A 
0  ";:FDR  As=9  TO  1  STEP-1 

:PRiNT  A; : NEXT: RETURN 
IF  250  COLOR  9:  PRINT  "Blue's  Tur 

n": LOCATE  11, 4: FDR  A=l  TD 
9:PRINT  A; :NEXT:PRINT  " 

0   A": RETURN 
HI  260  IF  PL=0  THEN  2B0 
BO  270  FOR  A=I  TO  SP:  BOSUB  290:  N 

EXT: RETURN 
ff  280  FOR  A>=«I1  TO  12-SP  STEP-1: 

GOSUB  290: NEXT: RETURN 
BE  290  C0L(A>=C0L(A>+l+4*  [CDL(A) 

=4>: COLOR  C (CDL ( A) ) : PS=A: 

BOSUB  20: RETURN 

Program  4:  Tug-A-War  For 
Apple 

Version  by  Tim  Victor,  Editorial 
Programmer 

n    100  GOSUB  400 

BA  110  HGR  :  HOME 

3C  120  HCOLOR=  3:  FOR  TD  =  -  1  T 

D  1  STEP  2:  FOR  TN  »  0  TO 
1:  FOR  TX  =  -  1  TO  TN  ST 

EP  2:  GDSUB  500:  NEXT  :  N 

EXT  :  NEXT 
DC  130  VP  =  40 
A!  140  FOR  I  =  0  TO  3:HC  =  CT  ( I ) 

:PS  =  4.5  +  I:  BOSUB  430: 
NEXT 
E8  150  yp  =  146:HC  =  1 :  PS  =  0:  G 

OSUB  430:  GDSUB  460 
A£  160  FOR  I  "    0  TO  10:BC(I)  =  I 

NT  (  RND  (1)  «  4) :HC  =  CT 

CBC(I))}PS  =1+1:  GOSUB 
430:  NEXT 


From  the  publishers  of  COMPUTE! 


April  1986 
COMPUTE!  Disk 


All  the  exciting  programs  from  the  past  three  issues  of  COMPUTE!  are  on 
one  timesaving,  error-free  floppy  disk  that  is  ready  to  load  on  your  IBM  PC 
and  PCjr  computers.  The  April  1986  COMPUTE!  Disk  contains  the  enter- 
taining and  useful  IBM  programs  from  the  February,  March,  and  April  1986 
issues  of  COMPUTE!. 

The  April  1986  COMPUTE!  Disk  costs  $12,95  plus  $2.00  shipping  and 
handling  and  is  available  only  from  COMPUTE!  Publications. 

For  added  savings  and  convenience,  you  may  also  subscribe  to  the  COM- 
PUTE! Disk.  At  a  cost  of  only  $39.95  a  year  (a  $12,00  savings),  you'll  receive 
four  disks,  one  every  three  months.  Each  disk  will  contain  all  the  programs 
for  your  IBM  machine  from  the  previous  three  issues  of  COMPUTE!. 

This  is  an  excellent  way  to  build  your  software  library  while  you  enjoy  the 
quality  programs  from  COMPUTE!. 

Disks  and  subscriptions  are  available  for  Apple,  Atari,  Commodore  64  and 
128,  and  IBM  personal  computers.  Call  for  details. 

For  more  information  or  to  order  the  February  1986  COMPUTE!  Disk,  call 
toll  free  1-800-346-6767  (in  NY  212-265-8360)  or  write  COMPUTE!  Disk, 
P.O.  Box  5038,  F.D.R,  Station,  New  York,  NY  10150. 


COMPUTE!  PublicationsJncS 


One  of  the  ABC  Pubttshing  Componies 


Apple  "Tug-a-War,"  a  challenging  strat- 
egy game. 


VI   170 


F? 

100 

4? 

190 

8? 

200 

IS 

210 

E4 

220 

41  230 


17   240 


54  250 
U  260 

47  270 


99  280 

25  290 

a>  300 

IF  310 


5A  320 


51  330 

13  340 

?F  350 

12  360 


33  370 


41:  3B0 


HC  =  6: PS  =  12:  GDSUB  430 
:  GDSUB  460 
BP  =  5:  GDSUB  470 
VTAB  21:  FOR  I  =  1  TQ  lit 
HTAB  I  «  3  +  2:  IF  I  <  1 
0    THEN  PRINT  CHR»  {4S  +  1 

>; 

IF  I  =  10  THEN  PRINT  "0"; 
IF  I  =  11  THEN  PRINT  "A"; 
NEXT  :  VTflB  23:  HTflB  1:  P 
RINT  "GREEN'S  MOVE: "; 
BOSUB  520: ft  =  ft  -  1:  IF  ( 
BP  <  =  A)  THEN  BP  =  BP  + 
JTCBC<BP)  ) 

FDR  I  =  0  TQ  «:BCn)  =  BC 
(I)  +  1  -  4  *  (BCd)  =  3) 
:HC  =  CT(BC(I) ) :PS  =  I  + 
1:  GOSUB  430:  NEXT 
GDSUB  470 
IF  BP  <  0  DR  BP  >  10  THEN 

360 
VTAB  21:  FDR  I  =  1  TD  1 1 : 

HTAB  (12  -  I)  *  3  +  2:  I 
F  I  <  10  THEN  PRINT  CHR* 
(48  +  I)  ; 

IF  I  =  10  THEN  PRINT  "0"; 
IF  1  =  11  THEN  PRINT  "A"; 
NEXT  :  VTAB  23:  HTAB  li  P 
RINT  "BLUE'S  MOVE:  "J 
GDSUB  520: A  =  11  -  A;  IF 
(BP  >  =  A)  THEN  BP  =  BP  + 

JT(BC{BP) ) 
FOR  I  =  10  TD  A  STEP  -  1: 
BCd)  =  BCd)  +1-4*  ( 
BCd)  =  3):HC  =  CT(BCd)  ) 
:PS  =  I  +  1:  eOSUB  430:  N 
EXT 

GDSUB  470 
IF  BP  <  0  OR  BP  >  10  THEN 

360 
BQTD  190 

PS  =  12  t  (BP  >  0)  -  1:  H 
COLOR=  4  *  (BP  >  0):  BQSU 
B  490 

VTAB  23:  HTAB  1:  IF  BP  < 
0  THEN  PRINT  "GREEN  WINS 

":  GOTO  390 
IF  BP  >  10  THEN  PRINT  "BL 


UE  WINS     " 
M  390  GET  A*:  GDTD  110 
DE  400  FDR  I  =  0  TD  3:  READ  CT  d 

) 8  NEXT 
3B  410  FDR  I  = 

):  NEXT 


H   420 

8C  430 

n   440 

IE  450 
AB  460 


52  470 


0  TO  3:  READ  JTd 

:  RETURN 
DATA  3,5,6,2,-1,-2,1,2 
HCOLDR=  HC:  FOR  YP  =  VP  T 

0  VP  +  10 

HPLOT  PS  «  21  +  1,YP  TD  P 

S  *  21  +  17, YP:  NEXT 

RETURN 

HCQLDR=  3:  FOR  YP  =  VP  + 

1  TD  VP  +  9  STEP  2:  HPLDT 
PS  »  21  +  1,YP  TD  PS  t  2 

1  +  17, YP:  NEXT  :  RETURN 
IF  BP  <  0  OR  BP  >  10  THEN 
RETURN 


19  4B0  HCOLOR=  4  t     (CT(BC(BP))  > 

3) :PS  =  BP 
74  490  FOR  YP  =  VP  +  3  TO  VP  +  7 

:  HPLDT  PS  *  21  +  27, YP  T 

0  PS  *  21  +  32, YP:  NEXT  : 
RETURN 
IF  500  TP  =  124  +  (TD  +  TN)  t  21 
+  TN  *  TX  «  4:TL  -  TP  + 

TD  »  3:TR  -  TP  -  TD  «  3 
E5  510  HPLOT  TR,60  TD  TL,57  TO  T 

R,54:  RETURN 
84  520  POKE  49168,01  GET  A*:  IF 

A*  =  CHR»  (3)  THEN  END 
1?  530  IF  A*  =  CHR*  (3)  THEN  END 
CS  540  IF  A*  <  >  "A"  AND  A*  <  > 

"a"  AND  (AS  <  "0"  OR  A»  > 
"9")  THEN  520 
J6  550  IF  At  =  "A"  DR  ft*  =  "a"  T 

HEN  A»  =  CHR*  (59> 
38  560  IF  AS  =  "0"  THEN  At  =  CHR 

«  (58) 
51  570  A  =  ASC  (At)  -  48:  RETURN 

Program  5:  Tug-A-War  For 
Atari  ST 

Version  by  Kevin  Mykytyn,  Editorial 
Programmer 

10  fullw  2:clearw  2:coIor  1,1/1 

20  bp  =  6:c(l)  =  6:c(2)  =  7:c(3)  =  10:c(4)=  12:pl 

=0 
30  movd ) = -l:mov(2) = -2:inov(3) = l:mov( 

4)  =  2 
40  gosub  170:gosub  270 
50  pl=(pl=0):gosub  drawball;gosub  play 

er 
60  gosub  readmousedf  y<98  or  y>127  o 

r  x<34  or  x>273  then  60 
70  sp  =  int((x-ll)/24) 
80  if  (pl=0  and  sp>bp)  or  (pl=-l  and  sp 

<bp>  then  110 
90  t=c(col(bp));color  l,t,t:pdrcle  bp*24+2 

2,91,6 
100  bp=bp+inov(col(bp)):if  bp>ll  the 

n  bp  =  ll  else  if  bp=-l  then  bp=0 
110  gosub  colchange 
120  gosub  drawballiif  bp>0  and  bp<ll  th 

en  50 
130  gotoxy  13,14:if  bp  =  0  tlien  color  5:pri 

nt  "  Blue  Wins!  ":goto  150 
140  color  2:print  "  Red  Wins!  " 
150  gotoxy  10,16:color  l:print  'Tress  Mou 

se  Button":gosub  readmouse:clear:  go 

to  10 
160  drawball:  color  l,l,l:pctrcle  bp*24+2 

2,91,6:return 
170  for  a  =-75  to  105  step  30:linef  10,a,298, 

a:next 
180  for  a=10  to  298  step  24;line£  a,75,a,10 

5:next 
190  color  l,5:fill  12,77:color  l,2:fUI  296,77 
200  gotoxy  12,3;print  "1  2  1  2" 
210  for  a  =  100  to  220  step  24:linef  a,19,a,3 

7:next 
220  for  a  =  19  to  37  step  18:linef  100,a,148, 

a:linef  I72,a,220,a;next 
230  color  l,6:fill  101,20:co]or  l,7:fill  125,20 
240  color  l,10:fill  173,20:eolor  l,12:fill  197, 

20 
250  gotoxy  13,4:print  chr$(4);"  ";chr$(3) 
260  return 
270  for  a=l  to  10:q=int(rnd(l)*4+l);col(a 

)  =  q:color  l,c(q):mi  25  +  a*24,77 
280  next:return 

290  readmouse;  poke  contrl,124 
300  poke  contrl+2,0;poke  contrH-6,0 
310  vdisys(0);if  peek(intout)=0  then  310 
320  X  =  peek(pt90Ut):y  =  peek{ptsout + 2) 
330  return 


340  colchange:  if  pl  =  0  then  360 

350  for  a=l  to  spigosub  370;next:retum 

360  for  a=10  to  sp  step-l:gosub  370:next:r 

eturn 
370  coKa) = col<a) + 1 +4*(col(a)= 4) 
380  color  l,c(col(a)):ffll  25  + a*  24,77 
390  return 
400  player:  gotoxy  13,14:if  pi =6  then  colo 

r  2:print  "Red's  Turn  ":return 
410  color  5:print  "Blue's  Turn":return 


Pfifc     Fllf     »«w     E<H     PrtWT  • 


I        I    I 


Red's    Turn 


IS 


Use  the  mouse  to  play  the  Atari  ST  ver- 
sion of  "Tug-a-War." 

Program  6:  Tug-A-War  For 

TI-99/4A 

Version  by  Patrick  Parrish, 
Programming  Supervisor 

100  GOTO  150 

110  FOR  1=1  TD  LEN(A*) 

120  CALL  HCHAR (R, C+I , ASC (SE 
E* ( AS, 1 , 1 ) ) ) 

130  NEXT  I 

140  RETURN 

150  RANDOMIZE 

160  CALL  COLOR ( 14, 1, 7) 

170  CALL  SCREEN(2) 

1B0  PC(0)=5 

190  PC(1)=7 

200  Pt(0)="BLUE" 

210  P*(n="RED" 

220  Y*(0)="<-  12   3   4   5 

6   7   B   9 

230  Yt(l)="     9   8   7   6   5 

4   3   2   1  ->" 

240  KHAR<0)=0 

250  KHAR{10)=5 

260  FOR  1=96  TO  136  STEP  8 

270  CALL  CHAR ( I , "0000000000 

000000" ) 

280  CALL  CHAR( I+l , "0F0F0F0F 

0F0F0F0F" ) 
290  CALL  CHftR( 1+2, "3a7SFCFC 

FC7830" ) 
300  CALL  CHAR( 1+3, "00103010 

10101038" ) 
310  CALL  CHAR ( 1+4, "00384404 

0B10207C" ) 
320  NEXT  I 
330  PS=5 
340  PL=0 
350  BP=17 
360  CALL  CLEAR 
370  GDSUB  1000 
380  PRINT  TAB (1 1 ) ; "TUB-A-Wfl 

R" 
390  PRINT  :   s 
400  B«  =  CHR»  (12S)&CHR*  (12B)  !< 

CHR»( 129) 
410  PRINT  TAB (9) 5 "hhippq  xx 

y";B» 
420  PRINT  TAB(9) i "hkiptq  xC 

y"!CHR* ( 128) ; CHR* ( 132) ; 

CHR* ( 129) 
430  PRINT  TAB(9) ; "hhippq  xx 

y";8» 


48     COMPUTEI     April  1 986 


COMPUTEl's  All  New  Apple  Applications  Special 

COMPUTEI's  latest  Apple  Applications  Special  features  in-depth  articles  and  interviews, 
all  the  inside  news  about  Apple,  clearly  written  tutorials,  software  buyer's  guides,  new 
product  information,  and  valuable  ready-lo-type-in  programs  for  all  Apple  users. 


kTulc.r.::l--3:]tjreCT„Tn-:>lr.'i..-jrvv;rk,ingaOf  VccPgnt.  WacDrow.  And  ,V1c;- 'ATITl,- 


special: 


APPLICATIONS  ISSUE 


Gettho  Reody  Ftx 
T6tecorTmijr4cattons 

Exptortnq  Dolobassi 


■ 


A  Gome-Lovefs 

ChdCBs: 

The  Ten  Best-Ever 

ApplQ  Games 


A  First  Look 

At  Jazz 

For  The  Macintosh 


J?eQdv-To-Use  Programs 
Free  Wcth  TNs  bsue: 

Haai  SsQkw:  A  (m.t-pocM 

arco«  iHyUfioiTA 
Q>«s:  Flv«  ttvw  of 

Cfiflidnolrgi  pioy  owat  yoij 

;     Oueuog  game  Icf 

I  Softiaofcrwr  A  mocnine^ 
ksn^joge  search 
routru 

'    And  iTce 


AppJe  In  Education 


Apple  owners  find  these  special  Apple 

Issues  the  most  understandable, 

complete,  and  valuable  resources 

available  today. 


PLUS 

All  the  programs  in  COMPUTEl's  Apple  Applications 
Special  are  also  available  on  a  timesaving  disk, 
ready  to  run  on  your  Apple  II,  I1+,  He,  and  lie. 
The  Disk  costs  only  $12.95  (plus  $2.00  shipping 
and  handling)  and  gives  you  immediate  access  to 
all  the  great  programs  in  this  special  issue. 

Look  for  the  Spring/Summer  1986  issue  of 
COMPUTEl's  Apple  Applications  Special  on  sale 
where  you  buy  other  COMPUTE!  publications,  or 
order  dh-ectiy  from  COMPUTE!.  This  special  issue 
goes  on  sale  April  8,  1986. 

Send  in  the  attached  order  card  or  call  toll  free 
800-346-6767  (in  NY  call  212-887-8525). 


Features 

•  Business  Applications 

'86  Apple:  An  Interview  with  John  Scully 

A  wide-ranging  interview  with  the  president  of  Apple.  The 
company's  plans  for  the  coming  year,  its  markets,  the  new 
Macintosh,  and  the  viability  of  the  Apple  II. 
Busiitess  Software  Buyer's  Guide 

A  buyer's  guide  to  the  newest  Apple  11  and  Macintosh  word 
processors,  databases,  spreadsheets,  and  more. 
The  Expanding  Mac 

•  Education 

Apple  Rules  the  Schools 

Why  does  Apple  have  a  lock  on  educational  computing? 
Comments  from  teachers,  administrators,  and  Apple. 
Computers  and  the  Humanities 
Educational  Software  Buyer's  Guide 

•  The  Expanding  Apple 
If  9  New  II 

A  multitude  of  new  hardware  and  software  for  the  Apple  11 
line — from  color  printers  to  Mac-like  software — is  evaluated. 
Weirdware:  Off  the  Beaten  Software  Path 

Weirdware — out  of  the  ordinary  software — can  turn  the  Apple 
II  or  Macintosh  into  a  telescope,  astrological  fortune-teller,  baby 
evaiuator,  and  much,  much  more. 
MacAdds:  More  for  the  Macintosh 

Applications 

•  Utilities  and  Tutorials 
Windows 

Create  Macintosh-style  windows  on  any  Apple  Il-series 
computer.  Set  window  size,  open,  close,  and  retrieve  information. 
Mouse  Cursor 

A  Macintosh  BASIC  utility  for  altering  the  mouse  pointer. 
Design  data  can  be  saved,  then  used  in  other  BASIC  programs. 

Your  Personal  Ledger 

A  complete  personal  financial  application  for  tracking 
expenses,  income,  and  assets.  Easy  to  use,  and  packed  with  features 
from  report  generation  to  customized  category  codes. 
Personal  Publishing  With  Your  Macintosh 

Tutorial  and  guide  to  using  such  software  as  MacPaint  and 
MacWrite  to  customize  letterheads,  cards,  banners,  and  more. 
Keynote 

•  Education  and  Recreation 
Lexitron 

Entertaining  word  game  where  players  try  to  beat  the  clock 
while  finding  as  many  hidden  words  as  possible. 
Backgammon 

Play  the  computer  in  this  classic  game.  This  version  observes 
all  the  rules  of  standard  backgammon. 
Apple  Automatic  Proofreader 


COMPUTE!  Publicatioi^sjnc® 

Part  of  ABC  Consumer  Mogoiines.  inc.  ^Ifr 

One  of  the  ABC  PubSsrttng  Companies 

625  7th  Avenue.  6fh  Floor,  New  York.  NY  10019 

PubhsriefS  of  COMPUTE".  COMPUTE''!  Goietre,  COMr*UTE''l  GQ2e1T**  OcW.  COMPUTE'  Boott.  OM  COMPUTtl's  App*&  Aoc*C01'Onj 


'<-■•  ;TflB  ( 


440  PRINT 

450  PRINT  TflB<ll) 

IB)  ;  '•  -  >  " 

460  FDR  1=1  TO  15 

470  PRINT 

480  NEXT  I 

490  FOR  1  =  1  TD  ■? 

500  RANDOMIZE 

510  KHAR ( I >=INT {4»RND) +1 

520  NEXT  I 

530  FDR  R=13  TD  15 

540  CALL  HCHARCR, 2, 96, 2) 

550  FOR  1  =  1  TO  *? 

560  KH-96+KHAR( I ) »8 

570  CALL  HCHAR !R, 1*3+1 , KH) 

5B0  CALL  HCHARfR, 1*3+2, KH) 

590  CALL  HCHARiR, 1*3+3, KH+1 

) 

600  NEXT  I 

610  CALL  HCHAR !R, 31  ,  136, 2  J 

620  NEXT  R 

630  CALL  HCHARI 14, BP, 96+KHA 

R (PS) «B+2> 

640  IF  (PS=0) + (PS=10) THEN  1 

180 

650  AS=Y»(PL) 

660  R=17 

670  C=l 

680  GOSUB  110 

690  CALL  HCHAR(24, 17, 32) 

700  A$  =  P«  (PL)  «i"' S  TURN  " 

710  R=20 

720  C=ll 

730  eOSUB  110 

740  R=22 

750  C=14 

760  A«=" (1-9) " 

770  GOSUB  110 

780  605UB  1020 

790  CALL  KEY(0,K,H) 

800  IF  H=0  THEN  790 

810  IF  (K<49) + (K>57) THEN  77 

0 

620  AN=K-48 

930  CALL  HCHAR (24, 17, K) 
840  IF  PL=0  THEN  890 

850  AN=10-AN 

860  S=fiN 

870  E=9 

880  BOTO  910 

890  B=l 

900  E=AN 

910  GOSUB  1100 

920  FOR  Q=S  TO  E 

930  IF  KHAR(Q)<>4  THEN  960 

940  KHAR(Q)=1 

950  QOTO  970 

960  KHAR (G) =KHAR (Q> +1 

970  NEXT  Q 

980  PL=-(PL=0> 

990  GOTO  530 

1000  CALL  C0L0R(9,1,S) 

1010  CALL  COLOR( 14, 1 ,7) 

1020  FOR  1=1  TO  8 

1030  CALL  COLQR{ I ,PC (PL)  ,  2) 

1040  NEXT  I 

1050  CALL  COLOR ( 10,  PC (PL)  ,  1 

6) 
1060  CALL  COLOR ( 1 1 , PC (PL) , 1 

i) 
1070  CALL  COLOR ( 12,PC{PL) , 8 

) 
10B0  CALL  COLOR ( 13, PC (PL) , 1 

4) 
1090  RETURN 
1100  IF  ( (AN<PS) * (PL=0> ) + (A 

N>PS) » (PL=1 ) THEN  1170 
1110  A= (KHAR (PS) =1 )+ (KHAR (P 

S) =2) «2- (KHAR (PS) =3) -( 

KHAR (PS) -4) *2 
1120  BP=BP+A«3 
1130  PS=PS+A 
1140  IF  (PS>0) t (PS< 10)THEN 

1  170 
1150  PS=-(PS=-1)+{PS=11)+PS 


1160  BP=-(BP<5) «3- (BP>29) «3 

1 
1170  RETURN 
11B0  R=14 
1190  C=7 
1200  A«  =  P*  (- (PS=10)  >  8."  IS  T 

HE  WINNER ! " 
1210  GOSUB  110 
1220  A«="LIKE  TO  PLAY  AGAIN 

(Y/N) ?" 
1230  R-24 
1240  C=4 
1250  QOSUB  110 
1260  CALL  KEY(0,K,H) 
1270  IF  H=0  THEN  1260 
1280  IF  (K<>7a) I (K< >89) THEN 

1260 
1290  IF  K=a9  THEN  330 


This  version  of  'Tug-a-War"  uses  several 
of  the  Amiga's  4,096  different  color 
shades. 

Program  7:  Tug-A-War  For 
Amiga 

Version  by  John  Krause,  Assistant 
Technical  Editor 

SAY  TRAUSLATESC'")- 
SCREEN  2,320,800,3,1- 
WINDOW  3,"  Tug-A-War  "„12,2- 
FOR  i  =  0  TO  7- 

READ  r,g,b" 

PALETTE  i,r,g,b- 
NEXT- 

RAWDOMIZE  TIMER- 
DIM  a(l  1)- 
FOR  i=l  TO  11- 

aCi)  =  INT(RKDC  1)*4) + 4- 
NEXT- 
row  =  3- 

col =3: coir =4:003113  frame: GOSUB  squ 
are- 

col=4:00lr  =  B:G0SirB  frame:QOSTIB  BdU 
are- 

ool  =  8:oolr  =  6:GOStrB  fram9:Q0SUB  equ 
are- 
col  =9:C0lr=7:Q0SUB  frame:Q08'DrB  seju 
are- 
row  =10- 

LOCATE  5,11:C0L0R  1,4:PRINT  "3"- 
LOCATE  6,14:CQL0R  1,5:PRINT  "1"- 
LOCATE  6,36:C0L0R  l,6:PRmT  "1"" 
LOCATE  6,29:C0L0H  1,?:PRINT  "3"- 
LINE  (64,36)-STEP(-16,0),l- 
LINE  -STEPCa,4),l- 
LIWE  (4a,36)-STEP(8,-4),l- 
LINB  C848,36)-STEP(16.0),1- 
LINE  -STSP(-a,4),l- 
LIWE  (264,36)-STEP(-S,-4),l- 
FOR  col  =  0  TO  13- 

GOSUB  frame*- 
NEXT- 

col=0:oolr  =  3:GOSirB  square- 
ool=12:colr=S:aOSUB  square- 


dot  =8:  GOBUB  update- 

SAY  TRANSLATE  S(' '  welcome  to  tug  o  wa 

r.")- 

main:- 

LOCATE  17,15- 

IF  red  THEN- 
COLOR  2,0:PRINT  "Red's  turn  "- 
SAY  TRANSLATESC'reds  turn.")^ 

ELSE- 
COLOH  3,0:PRINT  "Blue's  turn"- 
SAY  TRAKTSLATESC'blues  turn.")- 

BKD  IF- 

WHILE  MOUSB(0)<>1  OR  M0U3E(4)<e 

0  OR  MOU3E(4)>104  OR  M0USE(3)<2 

3  OR  M0USE(3)>276- 

WEND- 

click  =  INT(M0irSE(3)/24)- 

IF  (red  AND  ollck<  =  dot)  OR  (red=0  AN 

D  cllck>  =  dot)  THEN  - 
temp  =  dot- 

IF  aCtemp)=4  THEN  dot-dot-2- 
IF  aCtemp)  =  5  THEN  dot  =  dot-l- 
IF  a(temp)  =  6  THEN  dot  =  dot +1- 
IF  a(temp)  =  7  THEN  dot  =  dot  +  2- 

END  IF- 

IF  red  THEN- 
FOR  1  =  click  TO  11- 
a(i)=a(i)  +  l- 
IF  a(i)-=6  THEN  a(l)=4- 
NBXT- 

ELSE- 
FOR  i=l  TO  cliok- 
a(i)  =  a(l)+l- 
IF  a(i)  =  8  THEN  a{i)  =  4- 
NEXT- 

END  IF- 

IF  dot>ll  THEN- 
dot=12:G0SIIB  update- 
LOGATE  17,16:C0L0R  S,0:PRINT  "  Re 

d  winal  "- 
SAY  TRANSLATE$C'red  wins.")- 
GOTO  qult- 

END  IF- 

IF  dot<l  THEN- 
dot=0:  QOSUB  update- 
LOCATE  17,15:C0L0R  3,0:PRINT  "Blu 

e  wins!  "- 
SAY  TRANSLATESC'blue  TiTlIlB.")'- 
QOTO  qult- 

END  IF- 

QOSUB  update- 
red— 1-red- 

GOTO  main- 
frame:- 

x  =  34:IF  34*ool>3a0  THEN  x  =  33- 
LINE  (24*001 ,  8*ro  w)-STEP(x,  24) ,  1 ,1)  - 

HETURN- 

square:- 

x=22:IF  24*col+l>380  THEN  x=31- 

LIWE(24*ooH-l,aTow  +  l)-STEP(x,22),o 

olr,tif- 

RETUEN- 

update:- 

FOR  001=1  TO  11- 
oolr=a(ool):GDSUB  square- 

NEXT- 

CIRCLE  (24*dot+ll,91),6,l- 

PAINT  (24*dot+ll,91),l- 

RETURN  - 

quit:- 

LOCATE    19,7:C0LOR    1,0:PRINT    "GliC 

k  mouse  to  play  again. "- 

SAY  THAN3LATE4("click  mouse  to  pla 

y  again. ")- 

WHILE  MOUSB(0)  =  0:WEND- 

RUN- 

DATA  .6,.5,.5,0,0,0,1,0,0,0,0,1,0,1,0,1,1, 

0,1,0,1,0,1,1-  ^ 


SO     COMPUTE!     April  19B6 


Reviews 


Silent  Service 


Neil  Randall 

Requirements:  Commodore  64  or  128  (in 
64  mode);  Apple  Il-sertes  computer  with 
at  least  64K  RAM;  Atari  400/800,  XL,  or 
XE  with  at  least  48K  RAM;  IBM  PC  with 
color/graphics  adaptei;  or  an  IBM  PCjr.  A 
disk  drive  is  also  required,  and  a  joystick 
is  recommended.  The  Commodore  version 
was  reviewed. 


Silent  Service,  from  Microprose  Soft- 
ware, is  one  of  a  new  type  of  computer 
war  game.  A  cross  between  arcade  ac- 
tion games  and  traditional  strategy  war 
games,  these  new  games  put  you  on  the 
battlefield  in  command  of  a  plane,  tank, 
or  submarine.  Microprose's  F-15  Strike 
Eagle  placed  you  in  a  modem  jet  fighter. 
In  Silent  Service,  you're  the  captain  of  a 
U.S.  submarine  in  the  Pacific  during 
World  War  II.  Your  mission  is  to  sink 
Japanese  cargo,  troop,  and  oil  shipping. 
The  game  includes  several  scenarios 
based  on  actual  engagements. 

Silent  Service  employs  several 
graphics  screens  to  relay  the  infor- 
mation needed  to  command  the  sub. 
The  Patrol  Navigation  Map  shows  a 
150,000  square-mile  area  of  the  Pacific 
Ocean  from  Midway  Island  to  China 
(east  to  west),  and  Australia  to  the 
U.S.S.R.  (south  to  north).  This  is  the 
strategic  map  on  which  j'ou  move  your 
sub  to  find  Japanese  shipping  lanes. 
Once  you've  found  a  convoy,  the  tacti- 
cal map  kicks  in. 

The  tactical  map  is  actually  a  series 
of  three  differently  scaled  maps.  The 
Patrol  Area  Map  is  described  above. 
You  can  zoom  to  the  Navigation  Map, 
which  shows  an  area  of  2,400  square 
miles  around  your  sub,  and  zooming 
further  yields  the  Attack  Plot,  a  40- 
square-mile  area.  The  detail  of  land 
masses  and  enemy  ships  changes  with 
the  zoom.  The  Attack  Plot  displays  the 
wake  of  each  ship,  to  show  which  direc- 
tion it  is  going.  You  use  the  Patrol  Area 
Map  to  find  the  enemy  convoy,  the 
Navigation  Map  to  close  in  on  it,  and 
the  Attack  Plot  to  position  your  sub  for 
attack. 


Superb  Graphics 

Once  you've  located  your  prey,  you 
shift  to  a  view  of  the  conning  tower,  the 
captain's  station.  Using  the  joystick  (the 
game  is  joystick-  or  keyboard- 
controlled),  you  either  use  the  peri- 


scope or  move  the  captain  to  one  of  the 
other  stations:  instruments  and  gauges, 
maps  and  charts,  damage  reports,  quar- 
termaster's log,  or  the  bridge.  Like  the 
map  screens,  each  battle  station  screen 
is  graphically  superb  and  very  detailed. 


Here  are  79  reasons  to 
buy  at  Elek-Tek.  not  to 
mention  the  fastest 
delivery  anywhere. 


L*MSCA 

BERNOULLI  BOX 

1.  10  meg  Vi  height  Drive  tor 
IBM-PC«T/AT  8. 
compatibles $  1B7S 

2.  20  meg  '/z  height  Drive  for 
IBM-PC/XT/AT  & 
compatilsles 2335 

3.  Non-Bootable  Interface 

Card  XO* 

4.  Bootable  Interface  Card  ...  234 

5.  10  meg  cartridges  for  above 

(3  pak  special) 125 


Save  30%  to  43% 
off  Manufacturer  Suggested  Ret.  prices  on 
America^  most  wanted  Printers 
Huge  Discount  on 

TOSHIBA 


^^^^       EPSON 

EPSON «  '^^ 

UfSO S21S 

RX  100+ 2M 

FX85   340 

FX286 OkLL 

ua  1500  parallel  CALL 

DXiO Oasy Wtieei  10CPS  ...230 
DX20  Daisy  Wheel  20CPS  ...  320 
13.    DX35  Daisy  Wheel  35CPS  .SM 


UHBEUEVABLEm 
XEROX/MABLO  0-36 

DalsyWheel  3SCPS 

Mtr.  Sugg,  Rei.  $1495 

Elefc-Trti  Pr!c<  $450 

P-38  Dot  {Matrix  400CPS 

Mtr.  Sugg.  Ret.  $1995 

EMc-ltek  Price  $600 


PRODUCTS  FOR  IBM-PC 

14.  AmdakSlOA 

23   ECCELL  Daughterboard . . .  13S 

31.  Hayn1200 

Amber  Monitor  1 1 50 

24.  ECCELL  I/O  Board » 

External  modem 380 

15.   GenerteHulll 

25   Hanajlas 

32.  Hayn  12008 

Multilundion  Board,  61K ...  135 

Monochrome  Card 299 

Inlemai  modem  wteottirare  .359 

16.   G«nw1c  Mum  384K 

2«.   Hennila  Color 

33.    HlyM2400 

Multilundion  Board.  3B4K  . .  ITS 

Cdor  Graphic  Card  155 

External  modem 599 

17.    AST  SIX  P«J<  + 

27.   l4antlon  4BC5921 

Multilundion  Board.  64K    ..225 

12008  tnt  No  Software 150 

Internal  modem  wfsoftware  .  525 

IB.   AST  Six  RaK  +  (kudnJ) 

with  MITE  Software 185 

3S.  A'nT4000 

Multilundion  Board.  3WK   .290 

28.  Nontkm  4«0«a$-1 

300/1200  Ext  lylc<!em 335 

19.  Qusdram  Quadboaid 

24O0BPS  inc  Mite  Software  .83) 

36.  USRobo)lc*Courtor2400 

MultilundW  Boatd,  OK    ...  195 

29.  Nontlon  4aoe(a 

Ext-  2400B  Smart  Modem   .  460 

20.   Mulli  Board.  6dK08JK  ..210/267 

Vi  Card  Modem  24O0  BPS 

37.   ToMtMHNOa4DT 

21.  OrehWTBctt. 

No  software 425 

V%  hi  OSOD  Disk  Orrw 90 

PC  Turbo  186 570 

30.   NoviUan  490603-1 

22.   ECCELLOK 399 

As  above  inc  MS-DOS  Soltvm  .  .4M 

38.  Dysan 

39. 1  BAR  8-15 

8  Outlet  Surge  Protector .  $50 

40.  XIDEX  Precision 

Internal  H.D.  Subsystem 
20  Megabyte $500 

DS/DD  Diskette  10pl(/$7.00 

5  boxes  minimum 

DISKETTES 

3M  DATA 

Dygm      moxal          3M         kcmorex  |^B 

CARTRIDGES 

SVi'SSDO 

OSDD 

6Vi"  SSDD 

DSDD 

SSKI9STPI 

0SDO9«TPI 

SVi'DSOOWD 

(FbrlBU  AT) 

B-  SSDD" 

8"  DSDD" 

••U(*»TMtttd 

20M             lOM               23M                 _                    _ 
27JW            2&M             29JM                _                   _ 
15.00           ^3M             12J»             11.50             nM 
MM             15.00               15.00               14JM               KM 
24.00             2*M               24JM                 _ 
33.00             39JX               29J»                 _                    _ 
33M             28.00               30JJO                 _                 24M) 

22.00        asm         2S.0O           _             _ 

26JXI            32.00              29.00                _                  _ 

73.DC100A S  13^ 

74.  DC300A 17.50 

75.  DC3D0XL 20.50 

76.DC300XLyP 21.50 

77.  DC600A 23.00 

78.DC1000 14J0 

79.  DC2000 19.50 

Call  for  qinnmy  piMng  lor  ID 
cvtrtoQH  or  mon. 

Call  for  Ouanttty  pricing  for  10  bom  or  mora. 

Cwv^  toot.  kMIM.  Ml 

Snt  nim  Vta  >  ■B«rt:ri  IV  lU  >  llni^  lU  CBMr>  Owl^  ■•»  IM,  >««|M  OlM  ajh  a  (ha)  >M  HM  W IBL  UUL  >« 

E 

:_^^         S5ST  IV    Uxto"'  A.r      Cx.Lji9i>    II  EO&DS 
.|||C      |312|E]T7BO0                      |31?tB;7'EeO 

■LEK-T 

'EK 

April  1986     COMPUTE)     61 


If  the  sub  is  surfaced,  you  can 
climb  to  the  bridge.  From  here  you  can 
look  around  to  spot  the  enemy  ships, 
using  your  naked  eyes  or  binoculars. 
The  view  includes  the  Japanese  ships 
(several  varieties,  each  graphically  dif- 
ferent) and  the  land  on  the  horizon.  The 
landforms  correspond  exactly  to  where 
you  are  in  the  Pacific;  if  you  patrol  to 
the  coast  of  New  Guinea,  you  will  see 
the  coast  of  New  Guinea.  Given  the 
amount  of  territory  covered  in  the 
game,  the  mapping  system  is  obviously 
very  sophisticated. 

The  binoculars  and  periscope 
screens  include  all  the  details  necessary 
for  firing  at  the  ships:  target  type,  target 
range  and  speed,  and  such  data  as  angle- 
on-bow.  You  may  fire  the  deck  guns  or 
torpedoes,  but  only  torpedoes  are  con- 
sistently effective. 

These  screens  are  the  heart  of  the 
action,  but  to  keep  the  sub  running  you 
must  pay  strict  attention  to  your  ves- 
sel's instruments  and  gauges.  They  dis- 
play information  about  the  battery,  the 
depth  of  the  sub  and  of  the  ocean  floor 
beneath  you,  fuel  levels,  the  status  of 
hull  openings,  and  so  on.  For  instance, 
the  battery  allows  restricted  underwater 
maneuvering,  depending  on  your 
speed,  and  then  must  be  recharged  on 
the  surface. 


This  assortment  of  screens  from  Silent  Service 
shows  the  diversity  of  the  program's  graphics. 

Attention  To  Detail 

Other  facets  of  the  game  are  equally 
realistic.  If  your  sub  hits  the  ocean  bot- 
tom, you  hear  a  scraping  sound  and  the 
hull  may  be  damaged.  You  can  cruise  at 
four  speeds  or  cut  the  engines  for  silent 
running.  More  esoterically,  once  per 
mission  you  can  get  rid  of  your  emer- 
gency tanks  to  stop  a  fatal  dive,  or 
release  debris  to  the  surface  to  fool  the 
Japanese  destroyers  into  thinking 
you've  been  sunk.  Sound  effects  range 
from  sonar  pings — telling  you  that  de- 
stroyers are  closing  in — to  the  ominous 
explosions  of  nearby  depth  charges. 
The  sub's  hull  even  creaks  if  you  dive 
deeper  than  it  was  tested  for,  and  you 
hear  a  grinding  metallic  sound  if  you're 


rammed  by  an  enemy  ship.  Silent  Ser- 
vice's detail  is  astonishing. 

But  the  most  impressive  part  of  the 
detail  is  that  it  does  not  impede  play. 
Detail  in  the  more  traditional  type  of 
war  game  frequently  hinders  under- 
standing and  lengthens  the  game  con- 
siderably, but  Silent  Service  plays  quite 
easily  after  only  a  half-hour  or  so  of 
practice.  Once  you  learn  how  to  steer 
the  sub  and  fire  torpedoes  at  a  target, 
you  can  try  a  mission.  You  can  learn  the 
rest,  such  as  diving  and  running  silent 
at  the  approach  of  a  Japanese  destroyer, 
as  the  situation  demands.  At  any  time, 
you  can  pause  the  game  to  allow  you 
time  to  think. 

Like  F-I5  Strike  Eagle,  Silent  Service 
is  both  intriguing  and  addicting.  Also 
like  F-15,  it  is  highly  educational,  but 
there  is  nothing  tedious  about  the  les- 
sons. The  excellent  manual  describes 
the  submarine  war  in  the  Pacific,  the 
background  to  the  scenarios,  and  the 
tactics  used  by  sub  captains.  By  playing 
the  game,  you'll  quickly  find  that  these 
captains  knew  what  they  were  doing. 
Silent  Service  is  a  superior  product. 

Silent  Service  , 

MicroProse  Software  Inc. 
120  iakefront  Drive 
Hunt  Valley,  MD  21030 
S34.95-$3$.95  (depending  on  version) 


DeluxePainf  For  Amiga 


Lee  Noel,  Assistant  Editor,  Art  &  Design 


Requirements:  Amiga  with  at  least  256K 
RAM  (512K  recommended).  Printer 
optional. 

Whenever  a  new  computer  appears  on 
the  market,  some  of  the  most  important 
factors  affecting  its  success  are  the  qual- 
ity and  diversity  of  its  software.  In  the 
case  of  the  long-awaited  and  innovative 
Amiga,  questions  concerning  software 
support  become  even  more  important. 
Is  this  computer  the  powerhouse  it's 
said  to  be,  and  can  programs  be  written 
to  take  full  advantage  of  its  capabilities? 

Electronic  Arts,  a  software  publish- 
er widely  considered  to  be  at  the  fore- 
front of  personal  computing,  said  yes  to 
both  questions  and  threw  its  consider- 
able weight  squarely  behind  the  Amiga. 
DeluxePaint,  by  Dan  Silva,  is  one  of  the 
first  results.  Not  surprisingly — consid- 
ering the  Amiga's  selling  point  as  a 
computer  for  those  who  want  a  "cre- 
ative edge" — DeluxePaint  is  a  visual 
arts  program  of  immense  scope  and 
flexibility. 

In  fact,  DeluxePaint  is  really  three 
different  programs  of  immense  scope 


and  flexibility.  Due  to  differing  memory 
requirements,  DeluxePaint  includes  a 
separate  program  for  each  of  the  Ami- 
ga's three  major  screen  modes:  320  pix- 
els across  by  200  down  with  32 
simultaneous  colors;  640  X  200  with  16 
colors;  and  640  X  400  with  16  colors. 
The  number  of  simultaneous  colors  in 
each  mode  can  be  selected  from  a  pal- 
ette of  4,096  possible  colors.  You  can 
also  customize  DeluxePaint  by  restrict- 
ing it  to  a  smaller  palette. 

After  booting  up  the  program  disk, 
you  must  type  in  a  command  to  call  up 
whatever  incarnation  of  DeluxePaint 
you  want.  This  may  sound  confusing  to 
nontechnical  artists  hoping  to  use  the 
Amiga  for  their  first  experiments  in 
computer  graphics,  but  loading  the  pro- 
gram is  fairly  straightforward.  First  you 
turn  on  the  Amiga  and  insert  the  usual 
Kickstart  disk.  When  the  prompt  asking 
for  the  Workbench  disk  appears,  you 
insert  the  DeluxePaint  disk  instead. 
AmigaDOS  comes  up  next  with  its  1> 
prompt,  and  then  you  type  the  appro- 
priate command.  For  instance,  you'd 
enter  dpaint  and  press  RETURN  to 
work  in  the  320  X  200  mode. 


Best  For  320  X  200 

DeluxePaint  works  best  by  far  in  the  320 
X  200  mode.  In  the  640  X  200  mode, 
pixels  are  three  times  as  high  as  they  are 
wide,  and  the  program  slows  down 
considerably,  In  640  X  400,  the  slow- 
down is  drastic.  So  much  memory  is 
consumed  that  there's  not  enough 
room  in  a  512K  machine  for  both  the 
entire  program  and  a  screen.  Instead, 
the  program  is  broken  into  modules 
that  are  constantly  swapped  in  and  out 
from  disk.  (DeluxePaint  works  this  way 
in  all  modes  on  a  256K  Amiga.) 

Also,  the  640  X  400  mode  suffers 
from  a  jittering  screen  display.  The  jit- 
tering varies  depending  on  the  color 
combinations,  and  high-contrast  com- 
binations are  worse.  This  isn't  Deluxe- 
Paint's  fault — the  monitor  simply 
cannot  refresh  the  256,000  pixels  in  this 
mode  fast  enough  to  display  a  stable 
picture.  (Other  computers  with  similar 
modes  get  around  this  problem  by 
using  special  monochrome  monitors 
driven  at  higher  refresh  rates.) 

Since  DeluxePaint's  features  are  the 
same  in  all  modes,  we'll  describe  what's 
available  in  the  320  X  200  mode.  This 
is  the  most  color-rich  screen,  and  the 
program's  documentation  and  all  of  the 
sample  pictures  on  the  disk  are  slanted 
toward  it. 


52     COMPUTEI     April  1 986 


ALL  NEW  SOFTWARE  LlNEUPl 

kyan  pascal  (Version  2.0) $69.95 

kyan  pascal  is  the  ideal  system  for  learning  Pascal  and  developing  Pascal  programs.  It's  a  full  implementation  of  ISO 
Pascal  and  conforms  to  the  standards  set  by  the  Federal  Software  Testing  Center,  kyan  pascal  features  a  menu-driven  en- 
vironment with  multiple  HELP  screens;  a  full-screen  text  editor;  and,  optimized  6502  machine  code  compiler/assembler  It 
produces  code  that  runs  at  the  maximum  speed  possible  on  the  6502  microprocessor  kyan  pascal  supports  many  exten- 
sions including  string  handling,  linking,  chaining,  random  files,  and  included  or  inline  assembly  source  code.  It  also  supports 
a  line  of  powerful  toolkits  which  make  it  possible  for  even  novice  programmers  to  develop  sophisticated  software,  kyan  pas- 
cal (Version  2.0)  requires  only  one  disk  drive.  It  is  available  for  the  Apple  II  (runs  in  ProDOS  and  requires  64K);  Atari  (runs 
DOS  2.5  and  requires  48K);  and  Commodore  64/128.  kyan  pascal  is  not  copy  protected  and  comes  with  a  Pascal  tutorial 
and  reference  guide. 


i 


Programming  Utility  Toolkit  S49.95 

Programming  is  faster  and  easier  with  this  extensive 
library  of  utility  programs  and  file  management  proce- 
dures. The  Toolkit  includes  source  code  for  more  than 
20  utility  programs. 

Advanced  Graphics  Toolkit $43.93 

Add  stunning  graphics  to  your  Pascal  or  assembly  lan- 
guage programs.  With  the  Toolkit's  graphics  primitives, 
you  can  build  a  custom  graphics  library.  Or,  you  can  use 
the  Toolkit's  library  for  2  and  3  dimensional  transforma- 
tions, windows  and  clipping,  shading,  and  more. 

kyan  Software  offers  you  a  1S  day  money  back  guarantee.  See  for  yourself .  .  .  kyan  is  the  best  programming  software. 
Send  Check/Money  Order:  kyan  software,  Dept.  P  •  1850  Union  Street,  #183  •  San  Francisco,  CA  94123 

Or  Call:  (415)  626-2080  •  Visa/MC  Accepted 

Pfease  include  S450/ordQr  for  shipping/  handling;  S12  outside  North  Amefica.  CA  residents  add  65<Mi  sates  tax. 


MouseText  Toolkit  (available  for  Apple  II  only) . .  $49.95 
Add  Macintosh-like  graphics  to  your  Pascal  programs. 
The  Toolkit  includes  routines  for  pull-down  menus,  win- 
dows, and  mouse-controlled  cursor  events  (Toolkit  re- 
quires Apple  lie  or  enhanced  lie). 

Macro  Assembler/Linker $69.95 

kyan's  latest  programming  tool  adds  a  new  dimension 
to  assembly  language  programming.  The  Assem- 
bler/Linker includes  a  text  editor,  65C02  macro  assem- 
bler, object  module  linker,  debugger,  and  librarian. 


Tons  Of  Tools 

Like  virtually  all  Amiga  software,  De- 
luxePaint  is  a  mouse-driven,  icon-based 
program,  similar  in  some  ways  to  Mac- 
Paint for  the  Macintosh.  An  array  of 
drawing  tools  is  represented  by  icons 
on  the  computer's  display  (the  tools  can 
be  hidden  when  the  picture  is  finished). 
Tools  are  selected  by  moving  a  pointer 
to  the  appropriate  icon  with  the  mouse. 
A  click  of  the  mouse  button  activates 
the  tool,  which  can  then  be  used  in  the 
drawing  area. 

DeluxePaiut  has  practically  all  of 
the  tools  that  have  become  standard  in 
graphics-design  programs.  You  can 
draw  straight  lines  and  a  multiplicity  of 
outlined  or  filled  shapes,  paint  with 
different-sized  brushes  or  an  "air- 
brush," print  text  on  the  screen,  and 
lots  more.  But  DeluxePaint  really  shines 
because  it  offers  unique  new  tools  and 
novel  extensions  to  the  old  standbys. 

First  and  foremost,  DeluxePaint 
recognizes  the  importance  of  color  to 
the  artist.  The  program  has  a  special 
palette  window  where  any  of  the  Ami- 
ga's thousands  of  colors  can  be  mixed 
and  used  in  design  work.  The  palette 
appears  from  the  program's  title  bar  as 
a  pull-down  menu  (the  menu  selections 
have  alternate  keyboard  commands  as 
well.) 


This  picture  of  a  paint  can  and  brush — 
included  on  the  DeluxePaint  disk — 
shows  the  fine  shading  possible  with  32 
simultaneous  colors  chosen  from  a  pal- 
ette of  4,096. 


Within  the  palette  is  an  almost  be- 
wildering number  of  options.  For  in- 
stance, there  are  two  ways  to  make 
color  adjustments.  The  first  method  has 
three  slide  controls — manipulated  with 
the  mouse — that  alter  the  percentages 
of  red,  green,  and  blue  in  any  color 
(these  are  the  primary  colors  for  a  video 
display).  Another  set  of  three  sliders 
allows  changes  to  the  hue,  saturation, 
and  value  of  any  selected  color.  The 
latter  system  is  much  like  the  tint,  color, 
and  contrast  controls  on  a  normal  color 
TV.  As  a  result,  novice  users  of  Deluxe- 


Paint may  find  this  system  reassuringly 
familiar. 

If  that's  not  enough  flexibility,  the 
artist  can  also  move  the  palette  window 
to  any  convenient  location,  and  the  re- 
location will  be  "remembered"  for  the 
rest  of  the  current  session. 

Flowing  Colors 

Colors  are  selected  simply  by  pointing 
and  clicking  with  the  mouse;  selection 
is  verified  by  a  highlighted  box.  Color 
changes  are  instantly  reflected  in  the 
palette  window  and  in  the  picture.  As  a 
consequence,  it's  delightfully  easy  to 
adjust  colors  relative  to  each  other.  The 
program  disk  includes  two  good  exam- 
ples of  the  effects  made  possible  by  this 
precise  control  over  a  diverse  palette. 
"KingTut"  displays  the  hard,  gleaming 
gold  coffin  mask  of  the  Egyptian  boy- 
king  Tutankhamen.  In  contrast,  "Ve- 
nus" faithfully  reproduces  the  soft, 
almost  pearly  hues  of  Botticelli's  "Birth 
of  Venus." 

Some  really  amazing  special  ef- 
fects are  also  built  into  DeluxePaint'^ 
palette,  such  as  animated  color  cycling. 
This  allows  the  artist  to  establish  three 
sets  of  colors  that  will  cycle  through  a 
certain  range.  Each  range  can  be  narrow 
or  wide,  can  include  harmonious  or 
clashing  colors,  and  can  overlap  the 


April  1986    COMPUni     53 


COLOR  MONITOR 

SALE!!! 


(Premium  Quality) 

•  Built  rn  Speaker  &  Audio 

•  For  Video  Recorders 

•  For  Small  Business 
Computers 

•  Apple  ■  Commodore 
•Atari  -  Aplus  3000  -etc. 

•  One  Year  Free 
Immediate 
Replacement  Warranty' 


>^0 


RGB 

Super  High 
Resolution 


(Premium  Qualify) 

*  Beautiful  Color 
Controst 

•  High  Resolution 

•  Sharp  Clear  Text 

*  Anti-Glare  Screen 

*  40  Columns  x  24  Lines 

•  Front  Panel  Controls 


13"  Color  Computer  Monitor' 

Sale 


*C64/Alari  composite  coble  $9.95 
*  CI  28  RGB/Composite  80  column 
cable  $19.95, 

13"  RGB  &  COMPOSITE  COLOR  MONITOR 

Allows  use  of  C-128  and  C64  mode  -  composite  and  80  column  RGB 
mode.  Must  be  used  to  get  80  columns  in  color  with  80  column 
computers.  Specially  designed  for  use  with  the  C128's  special  composite 
video  output,  plus  green  screen  only  option  switch,  (add  S14.50 
shipping) 


List  $329''° 


Add  $1  4.50  Shipping 


List  S399.00 

Sale 


259 


95 


12"  MAGNAVOX  (NAP)  80  COLUMN  MONITOR 

Super  high  resolution  composite  green  screen  monitor.  80  columns  x 

24  lines,  easy  to  read,  plus  speoker  for  audio  sound  included.  List  $129.00 

Fantosiic  value.  Limited  Quantities. 


Sale  *79'5 


Turn  Your  Monitor  into  a  TV  Set  Without  Moving  Your  Computer 

Elegont  TV  Tuner  with  dual  UHF/VHF  selector  switches  goes  between 

Sale  $49^5 


your  computer  and  monitor.  Includes  mute,  automatic  fine  tuning 
and  computer-TV  selector  switches.  Inputs  included  for  300  ohm,  75 
ohm,  and  UHF.  Can  be  used  with  coble  TV  and  VCR's.  Fantastic 
Value.  Limited  Quantities. 


list  S129.95 


15  Day  Free  Trial  ~  90  Day  Immediafe  Replacement  Warranty 

nowesTPRtCES  *  best  service  in  u.s.a.   'Ohe  day  express  mail  'OVER  500  programs  »  free  catalogs 


Add  SIO.OO  for  shipping,  handlrng  and  insurance.  Illinois  residents 
pteose  odd  6'A%  tax.  Add  S20.00  for  CANADA,  PUERTO  RICO. 
HAWAII,  ALASKA.  APQ-FPO  orders.  Conodion  orders  must  be  in  U.S. 
dollars.  WE  DO  NOT  EXPOflT  TO  OTHER  COUNTRIES.  EXCEPT 
CANADA.  Enclose  Coshier  Check.  Money  Order  or  Personal  Check. 
Allow  Id  days  for  delivery.  2  to  7  days  for  phone  orders.  1  doy  express 
mail !  Prices  &  Availability  subject  lo  chonge  without  notice. 
VISA  — MASTERCARD  — C. CD-  No.  C.O.D.  foConado.  APO-FPO 


COMPUTER  DIRECT 

We  Love  Our  Customers 

22292  N,  Pepper  Rd.,  Barrington,  III.  60010 

312/382-5050  to  order 


240K  Apple  Compatible 
®  Computer  System  # 


APIui  3000  computer  system  includes  192K  RAM.  48K  ROM 
(32K  Microsoft  Basic  plus  UK  ROM  Emulator),  160K  Laser 
S%"  Disk  Drive  (Runs  Apple  11  Software),  Magic  Window 
Wordprocessor,  MaglCalc  spreadsheet.  Magic  Memory 
Datolaase.  Ail  for  only  $399.00 


$ 


Campl&t&  Syst&m 


•  15  Day  Free  Trial^ 

^imy  "Aplus  3000'* 

fey^vii       System 

yCMEMORYi^J 


399 


00 


CP'U  CARTRIDGE 
TORT 


IPfllNTEH 
INTERFACE 

•  DISK  DRIVE 

CONTROLLER  INTERFACE 


\  BCECT   ■  POWER 

'SOUND  I       \      •  fCB   •  "MET     s^^ff^cH 
VOLUME  \       \ OUTPLTT 

•  COMPOSITE  VIDEO 
CASSETTE 
INTERFACE 


Double  Immediate  Replacement  Warranty 

If  any  of  the  Aplus  3000  computer  system 
equipment  fails  due  to  foulty  vi/orkmanship  or 
material  withiin  180  days  of  purcfiase  we  will 
REPLACE  it  immediotely  witfi  no  service  cfiorge! ! 


'  Over  10,000  existing  Apple^  programs  •  Centronics  printer  Interface  Included 

240K  (192K  RAM,  48K  ROM)    •  ArtScl's  Magic  Window  M,  Mogic  Memory,  and  MaglCalc  Included 
•  UOKLaser  5%"  Disic  Drive  (Runs  Apple  11  software)  •  RGB  (80  columns  In  color)  ond  composite  Included 

SPECIFICATIONS 


A  plut  3000  is  Q  complete,  self-contained  computer  based  on 
the  popular  6502A  microprocessor  and  con  top  into  the 
tremendous  software  library  of  Apple  II.  Features  include 
192K  Bytes  RAM,  32KB  Enhonced  Microsoft  BASIC,  SO  column 
text,  560H  X  192V  color  graphic  display,  81  key  sculptured 
keyboard  ond  high  efficiency  switching  power  supply.  Also 
included  as  standard  are  Centronics  bus  printer  interface, 
Cossetle  interface,  4  channel  sound  generator,  ond  SW" 
Apple  Compatible  Disk  Drive. 

•  TEXT 

—  40  columns  X  24  rows  or  80  columns  X  24  rows  software 
selectable. 

—  5X  7  chorocfers  in7  X8  matrix. 

—  Upper  and  lower  cose  chorocters. 

—  One  ol  Eight  colors  for  characters/graphics  and  background, 
Red,  Green,  Blue,  Cyan,  Mogento,  Yellow,  Block  and  White. 

—  Chorocter  set  with  normal,  inverse  and  flashing  capabilities. 

•  GRAPHICS 

—  280H  X  t92V  6  colors  —  Block,  White,  Violet,  Green,  Blue,  Orange. 

—  280H  X  192V  8  colors  bit  image  —  Block,  White,  Red,  Green,  Blue,  Cyan, 
Magenta,  Yellow. 

—  560H  X  192V  6  colors  —  Block,  White,  Violet,  Green,  Blue,  Orange.  (High 
resolution  color  monitor  required) 


More  Features  than  Apple^  for  less  than  Commodore^ 


Features 

RAM 

Runs  Apple  II  Software 

Function  Keys 

4  Voice,  6  Octave  Sound 

Composite  Video 

Disk  Drive 

Numeric  Keypad 

Video  Cable 

RGB  Color  Cord 

80  Column  Cord 

Centronics  Printer  Interface 

Drive  Controller 

SI  50  Wordprocessor  (Mogic  Window) 

SI  SO  Spreadsheet  (MogiCalc) 

S60  Dotobose  prg,  (Magic  Memory) 

Your  Cost 


Aplus  3000 

1«2K 
Tat 

14 
Y«| 
Y«i 

Includsd 
Includftd 
Included 
Included 
Included 
Included 
Included 
Included 
Included 
Included 


Apple  lie 

64K 

Yes 
None 

Nto 

Yes 
Extra  Cost 
Extra  Cost 
Extro  Cost 
Extra  Cost 
Extra  Cost 
Extra  Cost 
Extra  Cost 
Extra  Cost 
Extro  Cost 
Extra  Cost 


$399.00         $1745.00 


Commodore 
C-128 

12SK 

No 

16 

Yes 

Yes 

Extra  Cost 

Included 

Extra  Cost 

Included 

Included 

Extra  Cost 

Included 

Extra  Cost 

Extra  Cost 

Extra  Cost 

$1117.90 


Super  Apple  Compatible  Disk  Drive  Sale  $149.95. 

Quieter,  Cooler,  Better  Disk  Drives  for  your  Apple  II  plus,  He,  lie 
(specify  when  ordering).  List  $299.85.  Sale  $149.95. 


IS  Day  Free  Trial  —  If  It  doesn't  meet  your  expectotlons 

within  15  day*  of  receipt,  just  send  It  back  to  us  UPS 

prepaid  and  we  will  refund  your  purchase  prlcell 


ACCESSORIES 

LIST 

SALE 

2nd  Disk  Drive 

$299,95 

$149.95 

2  professional  analog  joysticks 

$   39.95 

S   24.95 

Z-80  cart,  allows  CP/M  use 

$   99.95 

$   59.95 

RS232  odapter 

$   99.95 

$   59.95 

R/F  Modulator  (TV  hookup) 

$   29.95 

$    19.95 

RGB  coble  (RGB  Monitor  hookup} 

$   24.95 

$    19.95 

Centronics  cable  (for  Centronics  printer) 

$   34.95 

$  24.95 

Technical  reference  manual 

$   29.95 

$    19.95 

80  columns  Hi-Res  Green  Monitor 

$199.00 

$  79.95 

80  column  Hi-Res  RGB  Monitor 

$399.00 

$259.00 

Add  $25.00  for  shipping  and  handlingi! 

Enclose  Cashiers  Check.  Money  Order  or  Personol  Check.  Allow  14 
days  tor  delivery,  2  to  7  days  (or  phone  orders.  1  doy  express  moil ! 
We  accept  Visa  and  MosterCord,  We  ship  C.O.D,  1o  continental 
U.S.  addresses  only.  Add  SlOmore  if  C.O.D. 


AFPIE  ond  COAAMODORE  an  r*giir>rsd  Mndemo^ks  ol  Appl»  Compulpi  Inc.  or>d  Commodore  Bulinm  Wachin«.  tnc..  rMp#ctiv#,ly 


COMPUTER  DIRECT 

We  Love  Our  Customers 

22292  N.  Pepper  Rd.,  Barrington,  III.  60010 

312/382-5050  to  order 


Famous  Smith  Corona  National  Brand 

1 0"  PRINTER  SALE 

Belovsi  VS/HgIgsoiIg  Cost  Prices!!! 

•  ONE  YEAR  IMMEDIATE  REPLACEMENT  V\^ARRANTY 

•  Speed:  120  or  160  characters  per  second      *  Friction  Feed/Tractor  Feed  —  Standard 

•  80  character  print  line  at  10  CPi  *  1  Line  Buffer,  2K  Buffer  on  160  CPS  Plus  LQM 

•  Six  pitches        *  Graphics  capability        •  Centronics  compatible  parallel  interface 

•  Features  Bidirectional  Print,  Shortline  Seek,  Vertical  And  Horizontal  Tabs 

Check  These 
Features  &  Prices 


120  CPS  10''  Printer 


List 
$429.00 


f159 


SALE 


160  CPS  +  Letter  Quality 
Mode  10"  Printer 


emphasized 


This  is  a.  sample  of  our 
near-letter-quality  print, 

There  is  standard  data 
process ing  quality  print 


List 
$499.00 


$ 


italic  print 


SALE 


(IBM  —  Commodore ) 

Stze/Wolght 

Height  5.04"  Width  16.7" 

Depth  13.4"  Weight  18.7  lbs. 

Internol  Char.  Coding 

ASCII  Plus  ISO 

Print  Buffer  Size 

120  CPS;  132  Bytes  (T  line) 

120/160  CPS  Plus  LQM:  2K 

No.  of  Char.  In  Char.  S»t 

96  ASCII  Plus  International 

Grophlcs  Capablitty 

Standard  60,  72,  120  DPI 

Horizontal  72  DPI  Vertical 

Pitch 

10,  12,  16.7,  5.  6,  8.3,  Proportional  Spacing 

Printing  Method 

Impoct  Dot  Matrix 


SPECIFICATIONS 


199 


(Apple  —  Atari  —  Etc. ) 


char.  Motrix  SIza 

9H  X  9V  (Standard)  to  lOH  x  9V 

(Emphasized  &  Elongate) 

Printing  Faoturei 

Bi-directional,  Short  line  seeking,  Vertical 

Tabs,  Horizontal  Tabs 

Formi  Typo 

Fonfold,  Cut  Sheet,  Roll  (optional) 

Max  Paper  Width 

11" 

Feeding  Method 

Friction  Feed  Std.;  Tractor  Feed  Std. 

Ribbon 

Cassette  —  Fabric  inked  ribbon 

Ribbon  Life 

4  million  characters 


Interfaces 


Cart 


Interfacei 

Parallel  8  bit  Centronics  compatible 

1 20/ 1 60  CPS  Plus  NLQ:  RS232  Serial  inc. 

Character  Mode 

10x8  Emphasized;  9x8  Standard;  10x8 

Elongated;  9x8  Super/Sub  Script  (I  pass) 

Character  Set 

96  ASCII 

11x7  International  Char. 

Line  Spacing 

6/8/12/72/144  LPI 

Character  Spacing 

lOcpi  normal;  5  cpi  elongated  normol;  12cpi 

compressed;  6  cpi  elongated  cornpressed; 

16.7  cpi  condensed:  8.3  cpi  elongated 

condensed;  5.12.5  cpi  elongated  proportional 

rides  Ribbon  —  List  $19.95.  Sale  »13.95. 


IBM  $89.00 


Apple  $59.00 


Atari  $59.00 


Commodore  $39.95 


Add  SI4.50  for  shipping^  hohdlir^g  ond  insurance.  [lUnois  residents 
pleose  odd  6',.  "i  tax.  Add  S29.00  for  CANADA.  PUERTO  RICO.  HAWAII. 
ALASKA.  APO-FPO  orders.  Canodian  orders  must  be  in  U.S.  dollors.  WE 
DO  NOT  EXPORT  TO  OTHER  COUNTRIES.  EXCEPT  CANADA.  Enclose 
Coshiefs  Check,  Money  Order  or  Personal  Check,  Allow  14  doys 
delivery.  2  lo  7  days  for  phone  orders.  1  doy  express  moil!  Prices  S 
Availability  subject  to  change  without  notice. 
VISA  —  MASTERCARD  —  C.O.D.  No  CO.D.  lo  Conodo  or  APO-FPO 


COMPUTER  DIRECT 

We  Love  Our  Customers 

22292  N.  Pepper  Rd.,  Borrington,  III.  60010 

312/382-5050  to  ord 


M   152K  Lowest  Price  In  The  USA!  i52k 

ATARr  Computer  System  Sale 

•  Students  *   Word  Processing   •   Home  •   Business 


$379 


©Atari 

@  Atari 

©Atari 

Atari 


SYSTEAA   PRICE 


LOOK  AT  ALL  YOU  GET  FOR  ONLY 

LIMITED  OUAUTITieS 

'\  130XE  152K  Computer 
-i  1050  127K  Disk  Drive 
'i  1027  Letter  Quality  20  CPS  Printer 
-i  Writer  Plus  Word  Processer  with  Spell  Checker 
Atari  BASIC  Tutorial  Manual 

All  connecting  cables  &  T.V.  inlerfoc©  included.      _^^  » 

v.-  Monitors  sold  seporetly.  T^^TALS 


LIST  PRICE 

$249.00 

299.00 

299.00 

59.95 

16.95 


INDIVIDUAL 

SALE  PRICE 

$134" 

159»* 

159" 

49" 

12" 


$923.90      $517.75 


SAVE 
OVER  $100 

All  5  ONLY 

37900 

SYSTEM 
SAL£  PRICE 


$ 


CALL  FOR  1027  PRINTER  REPLACEINAENT  OPTIONS 


Other  Accessories  i-ist  Sale 

tV     12"  HI  Resolution  Green  Screen  Monitor         $199,00  $79.95 

•h     13"  Hi  Resolution  Color  Monitor  $399.00        $159.95 


Add  $9.95  tor 
Connection  Cobles 

Add  $10  for  UPS 


15  DAY  FRE£  TRIAL.  We  give  you  )5  days  to  try  out  this  ATARI  COMPUTER  SYSTEM! !  if  it  doesn't  meet  your  expedations,  just  send  it  back  to  us  prepaid 
and  we  wil!  refund  your  purchose  price! !  *0  DAT  IMMEDIATE  REPLACEMENT  WARRANTY.  If  any  of  the  ATARI  COMPUTER  SYSTEM  equipmeni  or 
programs  foil  due  to  faulty  workmanship  or  materiol  within  90doys  of  purchose  we  will  reploce  it  IMMEDIATELY  with  no  service  charge! ! 


Best  Prices  *  Over  1000  Programs  and  500  Accessories  Available  *  Best  Service 
*  One  Day  Express  Mail  *  Programming  Knowledge  *  Technical  Support 


Add  $25.00  for  xhipping  and  handling!! 

Enclose  Cashiers  Check.  Money  Order  or  Personal  Check.  Allow  )i 
days  (or  delivery.  2  to  7  days  for  phone  orders.  1  day  express  moil ! 
We  accept  Viso  ond  MasterCard.  We  ship  C.O.D.  to  continental 
U.S.  oddresses  only.  Add  SIO  more  if  C.O.D. ,  addS25  if  Air  Moil. 


COMPUTER  DIRECT 

We  Love  Our  Customers 

22292  N.  Pepper  Rd.,  Borrington,  III.  60010 

312/382-5050  to  order 


ranges  for  the  other  two  cycles.  Once 
activated,  a  cycle  runs  through  all  the 
colors  in  its  range  in  a  smooth  se- 
quence. The  speed  of  each  cycle  can  be 
individually  controlled  with  the  mouse 
and  a  slider.  Color  cycling  Is  what 
makes  the  disk's  sample  waterfall  pic- 
ture seem  to  flow.  With  thought  and 
care,  you  can  create  effects  otherwise 
impossible  in  two-dimensional  art. 

Closer  to  traditional  art  media  are 
tools  which  smear,  shade,  and  blend. 
Smearing  enables  an  artist  to  use  the 
DeluxePaint  brush  to  smudge  colors  al- 
ready painted  on  the  display.  The  effect 
is  similar  to  running  a  brush  through 
fresh  oil  paints.  Shading  and  blending 
work  on  a  defined  color  range,  like  the 
ranges  for  color  cycling.  Both  operate 
best  on  a  range  of  closely  related  shades 
and  affect  only  the  colors  in  the  selected 
range. 

The  action  of  shading  is  difficult  to 
explain  in  print,  but  blending  does  pret- 
ty much  what  it  describes — it  produces 
smooth  gradations  like  those  found  in 
watercolor  washes  or  airbrushing. 
There  are  also  tools  for  exchanging  col- 
ors and  an  undo  feature  to  recover  from 
mistakes. 

Anything  Is  A  Brush 

All  that's  fine  for  the  colors,  but  what  of 
the  brushes  that  apply  them?  Once 
again,  DeluxePaint  offers  abundant  op- 
tions. There  are,  of  course,  some  built- 
in  brushes.  These  are  various  useful 
shapes,  and  they  can  all  be  adjusted  in 
size  with  one  of  the  program's  easy-to- 
use  tools.  But,  as  might  be  expected, 
other  brush  manipulations  range  into 
some  wild  and  unexplored  regions. 

The  essence  of  DeluxePaint 
brushes  is  this:  Anything  can  be  a 
brush,  so  you  can  paint  with  a  single 
pixel,  a  pictorial  element,  a  whole 
screen,  or  anything  in-between.  And  if 
that's  not  enough,  the  artist  can  grab 
the  brush,  resize  it,  rotate  it  to  any 
angle,  flip  it,  or  drag  it  into  a  completely 
new  shape.  This  last  feature  allows  a 
brush  that  looks  flat  to  be  made  to 
appear  three-dimensional.  To  get  an 
idea  of  the  effect,  imagine  a  flag  lying 
flat  on  a  table.  Suddenly,  it's  bent  into  a 
stiff  billow  and  paints  in  an  arc  across 
the  sky — stars  and  stripes  and  colors 
and  all. 

Brushes,  like  complete  pictures, 
can  be  saved  to  previously  prepared 
data  disks.  There  are  also  some  esoteric 
possibilities  involving  the  exchange  of 
transparent  and  solid  colors  within  a 
brush,  plus  a  different  way  to  "hold" 
the  current  brush,  and  a  way  to  speed 
up  response  time  to  certain  types  of 
brushes.  Analogies  are  hard  to  come  by 
for  these  features,  but  they  open  up 
fascinating  possibilities  not  available  to 


Another  sample  picture  on  the  Deluxe- 
Paint disk  is  this  reproduction  of  Botti- 
celli's "Birth  of  Venus." 


This  photo  demonstrates  a  zoom  win- 
dow, just  one  of  the  many  features  in 
DeluxePaint. 


artists  working  in  traditional  media. 

The  basis  for  all  the  brush  transfor- 
mations is  the  designer's  ability  to  reach 
out  and  capture  any  area  of  the  screen 
with  a  special  brush  selection  tool.  This 
is  much  like  the  copy,  cut,  and  paste 
functions  found  in  other  graphics  pro- 
grams, and  it  can  be  used  for  those 
purposes  as  well  as  brush  design. 

Room  To  Zoom 

A  full  description  of  DeluxePaint's  myr- 
iad features  would  run  on  for  many 
pages  (the  manual  is  31  pages  long),  but 
highlights  of  some  of  the  major  ones 
not  covered  so  far  bear  mentioning. 

DeluxePaint  has  a  special  magnifi- 
cation tool  that  allows  the  artist  to 
zoom  closer  and  closer  to  the  area  un- 
der inspection,  and  then  back  away  in 
similar  increments.  Great  mobility 
within  the  magnify  mode  is  provided 
with  the  cursor  keys. 

There's  fairly  complete  printer 
support,  plus  the  ability  to  add  text  to 
designs  and  manipulate  it  in  numerous 
ways.  A  skewing  feature  even  lets  you 
turn  ordinary  text  into  italics. 

For  precision  design  work,  one  op- 
tion gives  a  constantly  updated  display 
of  the  cursor's  screen  coordinates,  an- 
other provides  a  grid  that  can  be  modi- 
fied, and  still  another  allows  unusual 
mirror-like  symmetry  effects. 


Virtually  anything  that  anyone 
ever  wanted  in  a  personal  computer 
graphics  program  is  included  in  Deluxe- 
Paint— and  it's  all  easy  to  use  and  easy 
to  learn.  It's  fortunate  that  the  program 
is  fairly  intuitive  because  the  documen- 
tation is  not.  The  basic  tone  of  the 
manual  is  that  experimentation  and 
playfulness  are  the  best  methods  for 
coming  to  grips  with  the  program.  A 
step-by-step  approach  might  have  been 
more  helpful.  And,  ironically,  the  man- 
ual's graphics  are  almost  nonexistent. 

Another  problem  with  the  manual 
is  that  it  lacks  completeness.  Deluxe- 
Paint cannot  create  data  disks  by  itself, 
so  the  artist  must  refer  to  Chapter  4  of 
the  Amiga  User's  Guide  for  the  infor- 
mation. Also,  hardly  any  program  com- 
mands are  summarized  in  DeluxePaint's 
command  summary. 

On  the  other  hand,  in  the  few 
places  where  you  might  get  really 
stuck,  the  documentation  comes 
through  with  some  solid  tutorials. 

Bottom  line:  Will  DeluxePaint  and 
an  Amiga  give  you  that  creative  edge? 
That  depends — in  the  end,  it's  still  the 
artist  that  has  to  pull  the  rabbit  out  of 
the  hat. 
DeluxePaint 
Electronic  Arts 
2755  Campus  Drive 
San  Mateo,  CA  94403 
$79.95  (Introductory  price) 
$99.95  (Regular  price) 


S'More  For 
Commodore  64 


Art  Hunkins 

Requirements:  Commodore  64  or  a  Com- 
modore 128  in  64  mode. 

Commodore  64  owners  who  wish  to 
upgrade  their  computers  have  two 
main  options;  Buy  a  Commodore  128  or 
install  a  S'more  cartridge  from  Cardco. 
Each  choice  has  its  advantages.  If  mon- 
ey is  no  object  (and  you  aren't  overly 
attached  to  your  64),  you  might  consid- 
er the  128.  But  the  choice  isn't  that 
clear-cut.  For  those  who  write  their 
own  BASIC  programs,  S'more  has  some 
significant  advantages  of  its  own. 
Frankly,  it's  difficult  to  know  which  to 
compare  S'more  to — the  64  without 
S'more,  or  the  128. 

Of  course,  the  128  does  have  some 
things  going  for  it:  twice  the  available 
user  memory  (122,365  bytes)  as  the  64; 
BASIC  7,0,  with  powerful  commands 
for  graphics,  sprites,  sound,  and  win- 
dowing; and  a  FAST  mode  for  double- 
speed  operation.  So  if  it's  raw  computer 


58     COMPUTE)      April  1986 


power  and  extra  memory  you  want,  the 
128  is  hard  to  beat. 

On  the  other  hand,  S'more  BASIC 
is  more  comprehensive  than  BASIC  7.0 
in  its  utilities;  it  defaults  to  disk  LOAD, 
offers  a  greater  variety  of  input  options 
as  well  as  more  flexible  screen  format- 
ting, and  includes  varied  reset  options. 
The  built-in  utilities  are  a  real  boon: 
MERGE,  AUTO,  HEX,  DEC,  FIND, 
CHANGE,  reNUMBER,  DUMP,  and 
OLD— all  familiar  to  BASIC  AID  users. 
The  LIST  command  can  scroll  up  and 
down,  not  true  of  BASIC  7.0.  On  the 
128,  only  AUTO,  RENUMBER,  and  a 
disk  file  APPEND  are  implemented. 

Compared  to  the  unenhanced  64, 
S'more  frees  up  57  percent  more  user 
memory — 61,183  bytes  instead  of 
38,911  bytes.  The  memory  is  contigu- 
ous and  can  be  used  in  any  way  you 
desire.  (As  we'll  see,  there  are  other 
protected  locations  where  machine  lan- 
guage routines  up  to  512  bytes  long 
may  be  stored.) 

Improved  Disk  Commands 

S'more  BASIC  and  BASIC  7.0  come  out 
about  even  when  it  comes  to  disk  com- 
mands (a  notable  weakness  with  the 
unexpanded  64);  only  the  approach  is 
different.  Whereas  7.0  gives  a  wealth  of 
specific  commands,  S'more  uses  only 
one — DISK,  an  all-purpose  "wedge" 
followed  by  the  traditional  disk  access 
symbols.  Both  BASICs  also  offer  nu- 
merous enhancements  of  standard 
commands  (such  as  a  RUN  that  LOADs 
and  RUNs  a  BASIC  program  from  disk). 
Both  permit  the  SHIFT-RUN  key  com- 
binadon  to  LOAD/RUN  the  first  pro- 
gram on  disk. 

Both  BASICS  offer  about  the  same 
range  of  programming  structures  (DO- 
LOOP,  WHILE-UNTIL,  IF-THEN- 
ELSE).  Both  implement  error- trapping 
and  HELP,  and  both  have  programma- 
ble function  keys,  though  7.0  sets  aside 
almost  twice  the  buffer  (246  bytes  ver- 
sus 128)  for  key  definitions. 

S'more  is  also  handy  in  that  its 
LOAD  and  SAVE  commands  default  to 
disk  (there  is  no  DLOAD  or  DSAVE), 
and  that  it  includes  a  disk  CATALOG/ 
directory  option.  In  fact,  due  to  the  way 
the  disk  default  option  works,  you  can 
display  the  CATALOG,  cursor  to  the 
program  you  want,  type  LOAD  (or 
RUN),  and  hit  RETURN— without  wor- 
rying about  what  is  displayed  after  the 
program  name. 

ML  Limitations 

For  BASIC  programs,  S'more  is  superb. 
But  let's  look  at  ML  applications.  Here 
the  picture  is  not  so  clear. 

Although  S'more  has  a  MONITOR 
command,  it  doesn't  have  a  built-in 
monitor;  MONITOR  just  links  you  to  a 


monitor  if  you've  loaded  one  into  mem- 
ory. S'more  comes  with  a  disk  of  soft- 
ware that  includes  a  version  of 
Micromon  called  Smon.  (Other  pro- 
grams on  the  disk  illustrate  applications 
of  the  more  noteworthy  S'more  BASIC 
extensions.) 

Cardco's  manual  is  thorough, 
clear,  instructive,  and  particularly 
forthright  when  it  describes  S'more'a 
limitations  with  memory  addressing 
and  machine  language.  Here's  the 
catch:  To  make  so  much  contiguous 
BASIC  memory  available,  Cardco  had 
to  change  a  lot  of  memory  locations  and 
reconfigure  memory.  Cardco  did  what 
it  could  to  maintain  compatibility  with 
Commodore  64  BASIC  (BASIC  2.0),  but 
there  were  limits  on  what  was  possible. 

It's  remarkable  that  low  memory 
with  S'more  is  so  highly  compatible 
with  BASIC  2.0.  Only  two  differences 
will  be  noticed  by  the  average  program- 
mer. First,  and  most  importantly,  the 
cassette  buffer  has  been  moved.  ML 
programs  designed  to  reside  there  will 
have  to  be  transported  to  the  new  loca- 
tion. Also,  some  of  the  previously  free 
bytes  (which  you  may  have  used  for 
flags  or  temporary  data  storage)  are  free 
no  longer  (zero  page  251-254  remain 
available,  however).  There  is  a  bonus, 
though— a  512-byte  RS-232  ii^put/- 
output  buffer,  protected  from  BASIC, 
which  can  be  utilized  for  ML  routines  in 
most  cases. 

The  most  critical  low  memory  loca- 
tions for  the  BASIC  programmer,  the 
keyboard  buffer  and  its  corresponding 
character  counter,  remain  intact.  As  the 
manual  clearly  states,  however,  ML 
routines  that  access  ROM  are  in  for 
major  rewrites.  The  only  ROM  routines 
that  are  safe  to  use  are  the  Kemal  rou- 
tines when  they  are  accessed  through 
the  vectors  in  low  memory  (these  vec- 
tors are  unchanged  in  location).  You 
cannot  access  ROM  subroutines  direct- 
ly. This  is  a  problem  particularly  with 
the  SID,  VIC,  and  CIA  chips— that  is, 
when  working  directly  with  screen, 
sound,  and  input/output  peripherals. 

The  S'more  Solution 

To  get  around  these  limitations,  the 
manual  suggests  that  perhaps  most  ML 
routines  are  best  written  in  S'more 
BASIC,  then  compiled  with  the  (not- 
yet-released)  S'more  BASIC  Compiler. 
This  suggestion  indicates  the  degree  of 
potential  difficulty  in  converting  most 
ML  programs  for  use  with  S'more. 

But  there's  another  alternative,  too. 
S'more  establishes  a  set  of  CIA,  VIC, 
and  SID  reserved  variables  (DIMension- 
ed  arrays).  Each  variable  corresponds  to 
a  CIA,  VIC,  or  SID  chip  location  you 
might  wish  to  PEEK  or  POKE.  To  POKE 
the  location,  just  assign  the  variable  the 


desired  value;  presto,  the  POKE  is 
done.  To  PEEK  the  location,  just  use  the 
reserved  variable  in  an  expression.  It 
works  fine  and  is  simpler  than  actually 
PEEKing  and  POKEing.  For  sound  and 
the  SID  chip,  for  example,  it  is  not  too 
far  from  the  convenience  of  using 
BASIC  7.0's  new  sound  commands 
(PLAY,  FILTER,  ENVELOPE,  etc.) 

Of  course,  this  technique  works 
only  from  BASIC,  not  machine  lan- 
guage. There  are  times  when,  for  speed 
and  efficiency,  ML  is  required.  Al- 
though conversion  of  ML  routines  ac- 
cessing the  support  chips  is  possible,  it 
is  apparently  far  from  trivial.  (The  rnian- 
ual  does  not  attempt  to  explain;  it  only 
hints  that  RAM/ROM  bank-switching 
is  involved,  and  that  the  banking  sys- 
tem is  similar  to  that  of  the  Commodore 
Plus/4.) 

There  is  but  one  other  limitation 
I've  noticed  with  S'more.  When  writing 
or  editing  a  BASIC  program,  the  en- 
hanced BASIC  often  responds  slowly, 
particularly  with  long  programs.  The 
cursor  can  take  1.5  to  2.5  seconds  to 
reappear  after  you  hit  RETURN  to  enter 
a  new  line;  it  takes  longer  toward  the 
beginning  than  at  the  end  of  a  program. 
On  the  other  hand,  garbage  collection 
purportedly  is  speeded  up  dramatically 
over  2.0  BASIC. 


And  your  Earls  and  Viscounts.  If  you've 
got  royal  ancestors,  we  have  the  noble 
software  that  can  help  you  trace 
them  down. 

Family  Roots  and  your  Apple,  IBM, 
Commodore,  Kaypro*  and  many  others, 
offer  individual  and  group  sheets,  charts, 
name  indices,  general  search  and  text 
.^  capabilities.  Adapts 

Put  up 


your 
dukes! 


Family 
Roots 


to  most  disk  drives, 
printers,  and  screens. 
You  get  more  utility 
programs,  plus  lots 
of  personal  control. 
A  comprehensive 
(new)  manual 
is  included. 

All  for  just  $185. 

Write  or  call  today 
for  more  infor- 
mation and  a 
free  brochure. 

Quinsept,  Inc. 

P.O.  Box  216 
Lexington,  MA  02173 
(617)  641-2930 

American  Express, 
Visa,  ^d  MasterCard 
gladly  accepted. 

*  Trademarks  for  Apple 
Computer  Inc.,  Intemalionat 
Business  Machines,  CBM.  Inc. 
and  Digital  Research. 


April  1986     OOMPUTEI     59 


Works  With  1 2a,  Too 

These  are  the  only  problems  I've  expe- 
rienced working  with  the  S'more  car- 
tridge. Overall,  S'more  maintains  a  high 
degree  of  compatibility  with  BASIC  2.0 
(and  its  associated  memory  configura- 
tion), offers  more  than  50  percent  addi- 
tional memory  accessible  to  BASIC, 
and  a  greatly  enhanced  language.  It 
makes  working  with  the  screen  and 
sound  a  simpler  task  for  BASIC 
programmers. 

In  short,  S'more  is  a  cost-effective 
alternative  to  a  Commodore  128  up- 
grade. {Cardco's  literature  describing 
S'more  as  a  "bridge  to  the  128"  is  on 
target.)  And  even  if  you  do  decide  later 
to  acquire  a  128,  S'more  works  identical- 
ly on  the  128  in  64  mode. 

S'more 
Cttrdco,  Inc. 
300  S.  Topeka 
Wichita,  KS  67202 
S69.95 


Heart  Of  Africa 


Neil  Randall 

Recjuirements:  Commodore  64  or  128  in  64 
mode;  Apple  ll-series  computer  with  at 
least  64K  RAM:  or  an  Atari  400/800/ 
XL/XE  with  at  least  48K  RAM.  Disk  only. 


One  of  the  truths  in  the  entertainment 
industry  is  that  anything  popular  will 
spawn  many  imitators.  The  field  of 
computer  games  is  certainly  no  excep- 
tion. The  first  hits  were  Space  Invaders, 
then  Pac-Man,  and  then  Donkey  Kong. 
Each  of  these  games  begat  a  host  of 
imitations,  few  of  which  approached 
the  quality  of  the  original.  Imitations 
are  rarely  as  good  as  the  things  they 
imitate. 

Still,  for  every  imitator  trying  to 
capitalize  on  the  popularity  of  someone 
else's  game,  there's  a  designer  trying  to 
improve  upon  his  own  original  design. 
This  is  not  imitation — at  least  not  what 
we  normally  think  of  as  imitation.  In- 
stead, the  designer  is  making  an  honest 
effort  to  improve  on  a  game  concept. 
Much  like  an  artist,  who  chooses  a  me- 
dium and  produces  work  after  work 
trying  to  perfect  his  use  of  that  medium, 
the  game  designer  invents  a  system, 
then  produces  game  after  game  to  de- 
velop the  system  to  its  fullest.  As  long 
as  the  system  keeps  improving,  the  en- 
terprise is  justified. 

Such  is  the  case  with  Ozark  Soft- 
scape's  Heart  of  Africa,  published  by 
Electronic  Arts.  Heart  of  Africa  is  an 
extension  of  the  system  pioneered  in 
Ozark's  own  Seven  Cities  of  Gold  (re- 


viewed in  the  September  1984  issue  of 
COMPUTE!).  Far  from  an  imitation,  it  im- 
proves on  the  original  game  and  offers 
a  fresh  approach  to  a  system  that  many 
people  considered  near-perfect  already. 
Both  games  deal  with  exploration,  but 
Heart  of  Africa  gives  us  something 
more:  a  quest. 

In  Search  Of  A  Tomb 

Your  quest  in  Heart  of  Africa  is  to  find 
the  lost  tomb  of  Ankh  Ankh,  some- 
where in  the  middle  of  the  Dark  Conti- 
nent. You  travel  alone,  buying  supplies 
and  tools  wherever  you  can.  As  you 
cross  the  continent,  you  make  discover- 
ies and  try  to  obtain  clues  about  the  lost 
tomb  from  tribal  chiefs.  It's  not  hard  to 
get  information,  but  it's  very  hard  to  get 
useful  information,  and  just  as  hard  to 
stay  alive.  The  perils  are  constant,  from 
dying  of  thirst  in  the  Sahara  Desert  to 
suffering  a  fata!  bite  by  a  poisonous 
snake. 

Like  Seven  Cities  of  Gold,  Heart  of 
Africa  is  entirely  joystick-driven.  You 
can  put  your  feet  up,  lean  back  in  your 
easy  chair,  and  play  the  game  without 
touching  the  keyboard.  For  further 
playability,  the  game  offers  a  diary  that 
continually  updates  itself.  The  diary  is  a 
graphically  attractive  series  of  pages 
that  records  special  events.  On  the  sur- 
face, it  seems  only  a  nice  addition  to  the 
game,  but  in  play  it  greatly  eases 
record-keeping.  Any  exploration  game, 
be  it  a  text  or  graphics  adventure,  de- 
mands some  keeping  of  records:  map- 
making,  recording  conversations, 
jotting  down  clues.  But  Heart  of  Africa 
takes  most  of  these  out  of  your  hands. 
The  map  is  produced  for  you  on  the 
screen,  and  your  observations,  even 
conversations,  are  recorded  in  the  dia- 
ry. You  can  read  the  diary  at  any  point 
simply  by  loading  it  from  disk.  It  makes 
the  game  extremely  playable,  especially 
for  those  who  loathe  keeping  records, 

The  Heart  of  Africa  game  screen 
shows  a  solitary  figure  marching  across 
the  map.  As  you  walk,  the  map  scrolls 
north,  south,  east,  or  west,  shedding 
light  on  more  and  more  of  the  Dark 
Continent.  The  map  is  constantly  up- 
dated, and  you  can  check  it  at  any  point 
during  the  game  to  see  what  you've 
already  discovered.  As  you  travel,  you 
discover  villages,  mountain  ranges,  riv- 
ers, lakes,  and,  of  course,  if  you  work 
hard  enough,  the  source  of  the  Nile. 

Random  events  are  sometimes 
positive,  such  as  finding  valuable 
caches  left  behind  by  previous  explor- 
ers, as  well  as  negative,  such  as  encoun- 
ters with  crocodiles,  poisonous  snakes, 
or  rhinoceri.  If  you're  equipped  with 
the  right  weapons,  you  can  normally 
stave  off  an  attack,  but  you  may  be- 
come ill,  fatigued,  or  very  thirsty.  You 


can  paddle  a  canoe  along  the  rivers  and 
lakes,  and  you  can  even  go  over  water- 
falls. The  entire  continent  is  yours  to 
discover. 

Tribal  Relations 

Perhaps  the  most  impressive  part  of  the 
game  is  the  interaction  with  the  tribes. 
As  in  Seven  Cities  of  Gold,  where  coop- 
erating with  the  natives  established 
your  reputation,  working  with  the 
tribes  in  Heart  of  Africa  is  difficult.  Each 
tribe  is  different  and  each  chief  reacts 
differently  to  you.  For  some  tribes,  a 
few  gifts  will  yield  helpful  information. 
For  others,  all  the  gold  in  the  world 
seems  insufficient.  You  can  steal  sup- 
plies by  wielding  your  gun,  but  your 
reputafion  will  suffer.  Or  worse,  you 
may  catch  a  blow  dart.  The  only  way 
you  can  know  how  a  tribe  will  react  is 
to  visit  each  village.  If  you  do  well  and 
reward  the  chief,  he'll  tell  you  what  else 
you  might  bring  for  more  information. 
If  you  do  poorly,  you'll  be  drummed 
out  of  the  village. 

The  Heart  of  Africa  manual  consists 
primarily  of  the  notes  written  by  your 
predecessor,  the  person  sending  you  on 
this  mission.  It  describes  each  of  the 
areas  of  Africa  and  the  tribes  therein. 
An  impressive  document  for  its  sheer 
information,  it  is  also  vital  for  gaining 
clues  about  where  you  should  go.  It 
gives,  for  instance,  translations  of  the 
tribal  names  for  geographical  points.  To 
the  natives,  after  all,  Victoria  Falls  is  not 
Victoria  Falls. 

There  is  nothing  easy  about  the 
game,  but  the  difficulty  comes  from  the 
situation,  not  in  trying  to  learn  the  sys- 
tem. It  is  extremely  easy  to  get  across 
Africa,  buying  things,  finding  things, 
and  giving  things  away,  but  it  is  very 
hard  to  gain  useful  information.  Still, 
this  is  the  game's  strength.  A  poor  game 
is  difficult  to  learn  and  offers  few  re- 
wards. A  good  game  is  easy  to  learn 
and  offers  endless  rewards.  Heart  of 
Africa,  in  this  sense,  is  a  very  good 
game. 

Like  Seven  Cities  of  Gold,  Heart  of 
Africa  is  professional  in  every  way.  An 
excellent  program,  filled  with  surprises, 
the  game  is  even  more  addicting  than 
its  predecessor.  In  Seven  Cities  of  Gold, 
your  rewards  were  the  excitement  of 
discovery  and  the  favors  of  your  mon- 
arch. Heart  of  Africa  duplicates  the  ex- 
citement of  discovery,  but  adds  a 
desperate  search  for  a  lost  tomb.  This 
quest  makes  Heart  of  Africa  an  adven- 
ture as  well  as  a  simulation. 

Only  One  World  To  Explore 

One  of  the  superb  features  of  Seven 
Cities  of  Gold  was  its  ability  to  create 
new  worlds  to  explore.  Players  could 
never  exhaust  the  game  because  the 


60     COMPUTEI     April  1986 


ATARI 
130XE 

ATARI  130Xe  Super 

Computtr  PKlug* 

130XECompu1or 

lOSODisk  Drive 

1027  Printer 

Atsriwriler  ^ 

Call  lor  Individual  i 

■up«r  packagft  prica 

ATARI  PRINTER 
INTERFACES 

Uprint  A 5*. 95 

Uprint  AW/1  BK...  79.95 
Uprint  AW/64K  . .  .99.95 

MPP  1150   59.95 

INDUS  QT 

DISK  DRIVE...  Call 

ATARMSOXItUPCR 

PRIKTER  PKOS. 
SG-10  Primer 

and  U-Print  A  ...  275 
Panasonic  1091 

and  U-PrinI  A  . . .  309 
Super  Priniar  Packages 
have  no  extra  shipping 
charges  or  credit  card 
surcharges  when  strip- 
ped irr  Continentgt  USA 

ATARI  130XE 
SOFTWARE 

BROOEReUND 

Prim  Shop 2895 

Karaleka 20.95 

Prim  snop 
Graph.  I.  II.  or  III...  19,95 

Prin  Shop  Comp 2795 

INFOCOM 

See  Commodore  64  sec- 
!inn  for  Hems  and  pncas 

ELECTRONIC  ARTS 

Arthnnll 2195 

Archon  16-95 

Seven  Cilol  Gold  ...  2195 

SkyfoK 2'!  95 

Pirball  Const t695 

One  on  One 21,95 

MICROPHOSE 

Sileni  Service 2395 

Gunstiip 23  95 

Actrniel 23.95 

F-15  Strike  Eagle  , , . ,  23  95 
Kennedy  Approach  . .  23.95 
OSS 

Basic  XE-Cart 52.95 

MAC  65  XL-Cart 49.95 

Aclion-Carl 49.95 

Basic  XL-Cart 39.95 

All  Tool  Kits  20.95 

BATTERIES  INCLUDED 

Home  Pak 34.95 

Paperclip 39.95 

B-Graph 34.95 

SYNAPSE 

Syncalc 32,95 

Syn(ite 32,95 

SynSrend 25,95 

Syncalc  Templales...  16,95 
Loderonner  Rescue . .  20,95 

Mindwheel  27,95 

Essex 27,96 

Brimslone 27,95 

SSI 

See  Commodore  64  sec- 
tion for  items  and  prices 

MISCELLANEOUS  ISflXE 

Hacker 19.95 

Amer,  Cross  City.  ...  19.95 
Flight  Simulator  B  ...  34.95 

Ultima  II  37.95 

Ultima  III 37.95 

Universe 69.95 

Letter  Perlect 39.95 

Data  Perlecl 39. 

I  Halley  Project 27.95 

lUltimal 23.95 

UllimalV 41.95 

MMG  Basic  Comp. .. .  69,96 


ATARI 
520ST* 

Atari  520ST- 

RGB  Sy>iem...Call 
Atari  520ST-Mono- 
clirome  Syi. .  .Call 
SF314DS/DD 
1  Magabyte  OitK 

Drive Call 

We  warranty  all 
520S  T  computers 
purchased  Irom 
ComputAamty  lor 

rtirjBly  days. 

'Please  call  lor 

stock  availability 

on  Atari  ST 
producta  betore 
ordering  by  mall. 

MISCELLANEOUS  ST 
VIPProlessional....  12995 

Ultima  II  3995 

Perry  Mason 34  95 

Degas  2795 

Farenheil451 3496 

Amazon 34.95 

Hacker 29.95 

The  Final  Word 94.95 

DejaVu 3995 

PC/lnlercom 8995 

Hen  27  95 

Crimson  Ceowo 27  95 

Mudpies  2395 

Kino's  Quest  II  34.95 

Galo 34  95 

Borrowed  Time 34,95 

Personal  Prolog 7995 

Personal  Pascal 64  95 

Zoomracks 59.95 

Mi-Term 54,95 

Regent  Word 3495 

Sundog 2795 

Regent  Spell 34  95 

Winnie/Pooh 1995 

Isgur  Portfolio  Call 

Michlron  Utilities....  4195 

Music  Studio  Call 

Silent  Service Call 

INFOCOM  ST 

Deadline  34  95 

Starcross  34  95 

Zoikl.  Ilorlll 29.95 

Witness 27  95 

Suspended 34.95 

Planetlall 27.95 

Sorcerer 29  95 

Seastalker  27.95 

Cutttiroals 27,95 

Hilchiker 2795 

Suspect 29.95 

WisnOrlnger  27.95 

Inlidel  29.95 

Enchanler 27.95 

Spellbreaker 34,95 

Mind  Forever  Voy 34,95 

AMIGA 

Call  tor  Mardwftn  and 
Mkt^n  ptrlphflrslft  prlcei 

AMIGA  SOFTWARE 

Hacker 29.95 

Mindshadow 29.95 

Arcnon  27.95 

VIP  Prolessional ....  139.95 

Maiicom 39  95 

Maxidesk  49.95 

Maxiplan 119.95 

One  on  One 29.95 

7  Cities*  Gold 29,95 

Skyfox 29.95 

Marble  Madness  ....  29.95 

Relurn/Atlatitis 29.95 

Archon  29,96 

Deluxe  Paint 59,95 

Borrowed  Time 29,95 

Inlocom Call 

Fin,  Cookbook 34,95 


APPLE 


P.O.  Box  17882,  Milwaukee.  Wl  53217 

ORDER  LINES  OP)n 

Mon-Fri  11  a.m.  ■  7  p.m.  CST  •  Sat.  IZ  p.ra,  ■  5  p.in.  CST 


PRACTICAL  PERIPHERALS 

We  carry  the  complete  line  of  products 

Call  lor  Current  PrIcet 

APPLE  PRINTER 

INTERFACES  AND  BOARDS 

Apricorn  Parallel  w/GraphiCs 69.95 

Apricorn  16K  Expansion  Board    .  .  .  62.95 

Apricorn  80  Column  BoartJ 64.95 

Apricorn  RS232  Interface 69.95 

U-Print-Apple  IIC  W/64K 109.95 

U-Print-Apple  IIC  w/IBK 89.95 

APPLE  SOFTWARE 


BHQCERBUND 

PrinlStiop  3395 

Print  snop  Graphics 

I,  11.  or  III 17,95 

Print  Shop  Comp 27  95 

Kasateka  2195 

Carmen  Sandiego  —  2595 

Science  Tool  Kit 3995 

Bank  Streel  Writer  ,.,44  96 
Fantiirision  27  96 

ELECTRONIC  ARTS 

Adventure  Const  34,95 

Archon  II  27,95 

Bards  Tale 2995 

ii^sgic  Football 2495 

Auto-Duel 3495 

Skylon 2795 

Lords  ol  Conquest  ,..2795 

One  on  One 2795 

Ultima  III 3995 

Ultima  IV 3995 

MoeSius 3995 

Epyx 

Ballblazer 24  S5 

Winter  Games 24  95 

Summer  Games  II 24  95 

World's  Great/ 

footoall 24  95 

Eidolon 24  95 

Apshai  Trilogy 2495 

(toronis  Rilt 24.95 

INFQCOM 

See  Alan  S20S  T  section  tar 
item$  0nsj  pnces- 

MICROPHOSE 

SeeAian  rSOXEsecIiOnlOr 
Items  and  prices. 

MINDSCAPE 

Color  Me 20  95 

Crossword  Magic  — 34  95 

Halley  Project 29.95 

A  View  To  Kill 27.95 

flatter 29.95 

The  Mist 27,95 

Perlect  Score 4995 

Voodoo  Island  27.96 

Rambo 27.96 

American  Challenge , .  Call 
Goldlinger Call 


SIMON  &  SCHUSTER 

Typing  Tulorlll 3495 

KobiashiAdv 2995 

WeOsierSpellChk  .  ..3995 
WePsler  Thesaurus...  84  K 
Lovejoy  SAT 4995 

SIR-TECN 

Wiiardry/Oiam  2395 

Waardry/legacy 27  95 

Wizardry/ Proving  ...33  95 
Wizardry/ l/Vernda  ,,,2995 
Wiziprinl 1995 

SSI 

See  Commodore  B4sec- 
(ron  for  items  4  prices. 
APPLE  MISCELLANEOUS 

Beachead 23  95 

Beacheadll 2395 

Gamemaker 27  95 

Hacker 27  95 

Hardball 24  95 

Sundog 2795 

Star  League  Base,  ...23.95 
MIcroleague  Base.  . .  .29,95 
PFS  Sotiware Call 


Newsroom 

..3995 

Clip  Art  Vol.  1  . . . . 

..2095 

Galo 

..2795 

Supertiase 

-.6995 

Comp.  Gardening  . 

-.3995 

Kings  Quest  II  — 

,.34  95 

Dambuslers 

.  .27,96 

Alternate  Reality  . 

.  .27,96 

Prince 

..47  95 

Movie  Maker 

..39  95 

Zoiro 

..27  95 

Goonies  

.  ,27.96 

Commando 

.  ,2695 

Kung  Fu  Master  . . 

..26.95 

Karate  Champ  . . . 

.  .2595 

Hulk 

..24.95 

..24.95 

Stnp  Poker 

..23.95 

Pixil 

..34  95 

Blazzing  Paddles  . 

..34,95 

Beagle  Bros, 

...  Call 

Math  Blaster 

. .  .34.95 

Fight  NigM 

...2795 

We  stock  hundreds  of 
programs  for  the  Apple, 
Atari,  C-64  and  IBM. 
If  you  don't  see  it  listed  here, 
i^on't  hesitate  to  call. 

NO  SURCHARGE 
FOR 


-e 


To  Order  Call  Toll  Free 

800-558-0003 


MASTERCARD 
AND  VISA 

EST.  1982 

onipai(fibLLLtifl 


COMMODORE      COMMODORE 


128 

C- 128  Computer 
1571  Disk  Drive 
1902  Monitor  . . 
1670  Modem   , , 


Call 
Call 
Call 
Call 


IBM  PC 

IBM  PC  SYSTEMS 

Conligured  to  your 

specific  needs 

Call  for  lowed  price  on 

IBM-PC,  IBM-XT 

or  IBM-AT 

Corona  PC-400 

Compatible  . .  Call 

Corona  Portable  PC 

Compatible  . .  Call 

PC  Multifunction 

Boards 

We  carry  the 

complete  line  of 

AST,  Hercules, 

Paradise,  STB, 

and  Quadram 

Call  for  current 

prices 

IBM  PC  SOFTWARE 

PrinlStiop 39,95 

Prini  Shop  Graph,  I  . .  27,95 
Bank  Street  Writer...  49.95 
Ancient  Arl  of  War  . .  Z9,K 

BORLAND 

Sidekick  3795 

Tprho  Pasi;a!  4995 

BLUE  CHIP 

Baron  3496 

Squire 34,95 

Millionaire  34.95 

Tycoon  34  95 

DIGITAL  RESEARCH 

C3il  ior  items  and  pricas. 

(NFOCOM 

See  A  fart  520ST  for  Herns 
and  prices 

LEADING  EDGE 

Nuishell  6995 

LE/WP  Basic 67,95 

LE/Word  Proc 

-Spsller 169.95 

MICROPilOSE 

F- 15  Strike  Eagle   ...  2395 

Kennedy  Approach  . .  27  95 

Acroiei 2795 

Silent  Service 2795 

MICROSOFT 

Right  Simulator 38,95 

Word 249.00 

Multiplan  134.95 

MINDSCAPE 

See  Apple  SQCtion  tor 
Items  and  prices. 

SIERRA 

Kings  Quest 34.95 

Kings  Quest  II 34,95 

Ultima  II  39.95 

TNOUSHTWARE 

Cgfl  for  items  and  prices. 

IBM  MISCELLANEOUS 

PFS Call 

Gato 27.95 

Wizardry 39.95 

Strip  Poker 27.95 

Electric  Desk 204.95 

D-Baselll  Call 

SiiJeways 39.95 

Home  Pak 34.95 

Sargonlll  34  » 

Peachlree Call 

Jet 34.95 

8P1  Business Call 

Newsroom 39  95 


128  SOFTWARE 

Multiplan  64/ 128.    44  95 

Consultant 52.95 

Papar Clip 'Spell  64  95 
Liwiftcalc  .... 
Wordwriter  .  .  . 
Data  Manager 
Fleet  System  II 
Superbase  128 
Mach  V/128  ,  . 


4995 
49  95 
4995 
44  95 
6995 
34  95 


COMMODORE 
64 

c-64  Computer . .  Call 
1541  Disk  Drive..  Call 
1660  Modem  , ,,  49.95 
1670  Modem 169 

C.64  SUPER 
PRINTER  PKGS. 

SG-10  SXetec 
Supergraph... 
Panasonic  1091 
&  Xetec 
Supergraph. . . 
Legend  1080 
&  Xetec 
Supergraph., . 
Super  Printer  Packages 
have  no  arided  shipping 
or  charge  card 
surcharges  when 

shipped  in 
Continentat  USA 


279 


31 S 


269 


GENERAL 
HARDWARE 


AREg^ 


^^r 


SG-10 308 

SG-1S 369 

SD-10 339 

SO-1S 449 

SR-10   489 

SR-15   Call 

PRINTERS 

Panasonic  1091 245 

Legend  806 169 

Legend  1090 209 

Powerlypt  309 

Juki  5510 389 

Epson Call 

Panasonic  1(80 215 

PRINTER  BUFFERS 

Microfazei  From  169 

U-Bu(l  I6K  7995 

U-Bud  64K  99  95 


.469 


B.I.  80  Column 
Card  . . .  59.95 
While  Suppllet  Last 


Cardco 
G-Wte 


.54.95 


MODEMS 

us  Robotics 2400.. 
Volksmodem  J2tXI . 

Promelheus  12O0 319 

Password  1200 209 

Novation Call 

PC  Modems  Call 

MONITORS 

Commodore  1902 Call 

Commodore  1802 169 

SakataSC-lOO 169 

Samsung  ir  Green  .   79.95 
Samsung  12" Amb. .. 79 95 

Tanan  . , , ,  Call 

Amdek Call 


COMMODORE  64  SOFTWARE 

ELECTRONIC  ARTS 

Adv  Conslruction  . .  ,29.» 
Mall  Order  Monster  ..24.95 
Racing  Destruclian  . .  .24.95 

Ultima  III 37  95 

Ultima  IV 4195 

Bard  s  Tale 2?.* 

SeoAlan  iSOXE  section  lor 
rest  or  items  i  prices, 

EPYX 

Eidolon 24  95 

KoronisRill  24,95 

Winter  Games 24  95 

Apshai  Trilogy 24,95 

Fast  Load-Carl 24  95 

Program/ Tool  Ki  I  ....2996 
MICROPROSE 

See  Atan  i:^XB  section 
lor  items  and  prices. 

MISCELLANEOUS 
COMMODORE  64 

Print  Shop  26.95 

Cal-Kit  34.95 

Superbase  64 47.95 

Karaleka  20,95 

Hacker 20.95 

Gamemaker 27.95 

Ultima  II 37.95 

Karate  Champ  25.95 

Essex 27.95 

Kung  Fu/ 

Kung  Fu  Master 25,95 

9Prince3olAmber  ...22,K 
Spy  vs.  Spy  Vol,  II  ...23.95 

MaxiGolf 24.95 

Inlernall  Hockey  ....  1995 

The  Fourth  Proto 23.95 

Blazing  Paddles 24.95 

Mirage  Word  34.95 

Mirage  Database  34.95 

Welcome  Aboaril 1996 

Super  Huey  14.95 

Speint 34.95 

Maih  Blaster 34, 

Word  Attack 34, 

Odesta  Chess 49,95 

Brimstone 27.95 


ACCESS 

Beach-Head 21,95 

3eacti-Head  II 24  95 

Raid/ Moscow 24  95 

MachV-Carl 21,95 

INFOCOM 

Zorkl 24.95 

Zorkll.orlll 27.95 

Oeaddne.. 29.95 

Starcross 29.95 

Witness  29.95 

PlaneWall 24.95 

Hitchiker  24.95 

Enchanter 24.95 

Cutthroats 24.95 

Sorcerer 29.95 

Spellbreaker 29.95 

SSI 

Baltallion 

Commander 24.95 

Battle  of 

Aniielnam 32.95 

Fighter  Command 

(No  Ataril 37.95 

Norway  85 

tNo Atari)  .; 21-95 

Panzer  Grenidier 2495 

USAAF 3795 

Breakthrough/ 

Ardennes 37,95 

Kampgruppe   ...37,95 

Phantasle 

(NoAlaril 24,95 

Broadsides 24.95 

Carrier  Force 37,95 

Comp.  Ambush  37,95 

Mech  Brigade 

(No  Atari) 37.95 

Field  of  Fire 

(No  Apple)  24,95 

Op,  Mkt,  Garden 32,95 

Pro  Tour  Goll 

(No  Atari) 24,» 

Gemslone Warrior  ...21.95 

Imp.  (jalaclum  24,95 

Computer  Baseball . .  .2495 
Comp.  Ouanerback, ,  ,24,95 


95.^ 


For  Technical  Into.,       Order  Inquiries,  or  for  Wise.  Orders 

414-351 -2007 


ORDERING  INFORMATION:  Please  ipatlly  lyiUm.  For  last  delivery  send  cashier  s  check  or  money  order  Personal  and  company  checks  allow  14  business  days  to  clear.  School  P.O.'s  welcome,  C.O.D.  chirgn  in 
W,IXI.  In  Continental  LI  S-A- include  S3.00  for  software  orders.  4'.i  shipping  lor  hardware,  minimum  S4,00,  Master  Card  and  Visa  orders  please  include  card  ir.  expiration  date  and  signature.  Wl  residents  please  iriclude  5% 
salestair.HI.AK.FPO.APO.  Puerto  Rico  and  Canadian  orders,  please  add  5%shipping.mliilntumtS.0a.  All  other  lorilgBoriterii<ldlG':'>ihlpplng.inlnlniuigttO.O0.  AM  orders  shipped  culside  the  Cpntinenlal  U.S.A.  are  shipped 
first  class  insured  US,  mail.  It  foreign  shipping  charges  exceed  the  minimum  amount,  you  will  be  charged  the  additional  amount  to  gel  your  package  to  you  quickly  and  safely.  All  goods  are  new  and  include  factory 
warranty, Duetoourlowpricesallsalesare  final.  All  difective  raturnt  miiil  hiva  •  riliirn  lulliDrliitlon  numbar.  Please  call  (414)  351  -2007  loobtainanl^A.I'oryDurrelurnwilinotbeaccepted-PricesandavaJlabiliiysubjecIlD 
change  without  notice. 


Sl/uco   ^ 


^AVE  =  PRINTERS 


$228  CARDCO 

32K   BUFFER   (C-54)  59 


CORONA 


INDUS 

Indus  GT  Atari 

GT  Commodore  .  ,  . 

195 
209 

MSD 

SDT  Drive  fC-D^] 
■50!  Dr.vB  [c-6aj 

239 

469 

TANDON 

■320K  lit  v.-  Dnve  ,  . 

-115 

TYMAC 

•fSStmii:    ApptDnwSSOK 

.289 

LP300  Laser  Primer. 
200361   Toner  Cartriei 


EPSON 

LX8C 209 

FXe5 .333 

JX80 Call 

Homev(ri!er  10 193 

DX10 207 

DX20 297 

DX35 597 

AP-BO 244 

Hl-eO 355 

HS-aO 299 

FX-286(MEW)  .     489 

L0-8(re;NEVVi    .         .529 
LQ-100{itNEW)    .  ■      659 


CITIZEN 

MSP-IO 255 

MSP-15 355 

MSP-20 337 

MSP-25 495 

OKIDATA 

Skimaie  10 "ni 
kimate  20 CALL 

le; 214 

192 xa 

193 563 

84P 645 

BROTHER 

HR-15XL-P 359 

HR-15XL-3 359 

HR-35P 839 

HR-35S 839 

2024L-P 949 

M1009-P 1£2. 


JUKI 

Juki  6100 344 

RS232  Serial  Board S5 

6100  T'aCIOr 119 

610O  Srieel  Feeder 209 

Juki    6300 757 

LEGEND 

aao 138 

lOaO Call 

1380      258 

1 38S        289 

808  148 

DIGITAL  DEVICES 

ISK    BUFFER  75 

32K   BUFFER 89 

64K   BUFFER 123 

DIABLO 

D25 549 

C30  API 1599 

53CECS 1759 

D  80  1  c  2395 

P3PCQI  699 

P3l  1749 

C.  V-n     939 

DX-35INEWI CALL 

Ar^-qfl CALL 


SG-10 S205 

PANASONIC 

109  228 

3t3l  (NEW)  264 

1092 325 

3151 409 

1  ABC  (NEW).        .         209 
1592  (NEWi 439 

SILVER  REED 

EXP-;0O .249 

exPbOO 295 

EXPE30    

E;;P770    .         ,  749 

STAR  MICRONICS 

SG-10 .205 

SG-IOC    219 

Se-15 367 

SD-10 319 

SO-15 438 

SR-lO 469 

SH-15 578 

SB-10  . 589 

Powertype   .....      .297j 


DUST  COVERS 

Atari 

520ST 11.95 

130XH 8.99 

800XL 699 

1060 6.99 

1025 7.99 

Commodore 

C120 799 

157»1541 6.99 

1902 10,95 

1702 899 

Cei.Vn.l" 699 

Panasonic 

1090/10S1 _ 8.99 

1092 8.99 

1063  ...9.99 

Star  MicroniCS 

SG.'SO'0   6.99 

SGSDia 9.99 

SRIO 999 

SHIS S.99 

Okldaia 

82(92 899 

83fl3 9.99 

193 9.99 


DRIVES 


PRINTER 
INTERFACING 


AXIOM 

AfeiS  lAia'i)  . 65 

Parr.lla*  |C-S4! ^ 65 

MICROBITS 

MPP-1150  lAiar:,  .     .54 

MPP-1150XL  (Alan)  .59 

MicfoPr.nt  lAlari)  39 

64K  RAM  Board  (600x1].  ...65 

DIGITAL  DEVICES 

I  ApeFace  XLP  (Atari) 49 

ApeFace  12XLP  (i200xli   .  49 

'  U-Prin1  A  (Atari)  54 

U-Prinl  C  (C-64>  49 

U-Print  A16K  Buller  74 

U-Prini  A54K  Bufler   .  99 

U-Print  AP16K  (Apple)  .        99 

U-Print  APS4K   Apple 139 

U-CALL  RS232  (Aftri)      ..,.37 

MICROTEK 

Dumpling  GX  (Apple)  .  59 
Dumpl'nq  16K  (Apple)  .  89 
RV-eilC  (Applel.  .    .49 

TYMAC 

Conneclion   (C-64)  55 

Tackier  (Apple)  49 

PPC-tCiO  (Apple)  39 

ORANGE  MICRO 

3RAPPLER+    (Applsl 85 

Grappler  16K  (Apore!     ...  149 

ORANGE   (Apple) 59 

Grappler  CD  iC-^J]  79 

CARDCO 

G-Wiz  (C-64) ...54 

C/y-G(C-64) 45 

C/?PS  (C-64)' 49 

Of?  B  (C-64) 39 

C/7AT  (Alar!) 49 

CPAP   (Apple)  49 


DISKETTES 


DENNISON 

ELEPHANT  5  A"  SSSD  1199 
ELEPHANT  5'-i'  SSOU  12  99 
ELEPHANT  SVx-   DSDD...14.'j9 

PREMIUM  5"f-  SSDD f399 

PREMIUM  5".  ■  OSOO   .    15.99 

SUNKYONQ 

SKC  5V."  SSDD 11.99 

SKC  5Vj-  DSDD 13.99 

MAXELL 

S'A"  MDt  13.99 


SVi 

5'.i 

VERBATIM 

SSDD 

DSDD 

1399 
.  1999 

S'A' 

BONUS 

SSDD 

DSDD   

..  e.99 
.12.99 

NO  LABEL  DISKETTES 

NL  SVi"  SSDD...  1C.99  (Box  10) 
NL  5V4"  DSDD.. ,15.99  (Box  10) 

•Frao  Diskette  Writer  Pen! 

'Free  Storage  Casel 


IBM-PC 

SOFT-WARE 


'LOTUS 

Lotus  1-2-3 309  00 

Symphony 439.00 

„     "QUADRAM 

Quad  Jr.  Exp.  Chassis. ...519:00 
Quad  j'r.  Exp.  Memory.. ..209.00 

Quad  Memory  Jr 209.00 

ITT  XTRA  XP  Perxmal  Computer! 

■256K.  2  Drive  System CALL 

■?56K    10  Msg   Hard  Syslem   Call 


IBW-PC 

COM  RATABLE 


•LEADING  EDGE 

Nutshell 69.95 

LEWP  BaiiC :. 65.00 

LEWP  Merge  Print... 99.00 

LE  Spell  Cor-ectiof) 1B9.0Q 

SSI  (IBM) 

Battle  rf>r  Mortr.afi.iv         ...34.95 

Knighrs  u[  Oese't     24.95 

Tgers  in  Enjvv £4  95 

Computsi-gabeDal!.. .54  95 

Eprienlc 22.95 

VVarO  Factor ...24,95 

Careis  &  Cullhroals 2J  95 

SYNAPSE  (IBM) 

S/nsiock     6^,95 

Essex., ,.,-.,..,.....  ..,2895 

Wizard  of  WaU  Si 28.95 

Brimstone __ 28.95 

SUB  LOGIC  (IBM) 

Je!  Simulalor 34  95 

BRODERBUND  (IBM) 

Bank  S!  Wni^r 48  95 

The  Prin[  Shop 34.95 

Graptiics  Library  1 22.95 

LodE  Rgni'sr..., 22,95 

Ancien:  ah  ot  Waf 27.95 

Champ  Lode  Runner.        .25  95 

MICROPROSE  (IBM) 

F.iBSirihe  Eagle 20.7= 

Soto  Rigtit 20.75 

Helical  Ace 20.75 

Spitfire  Ace 18.75 

AT&T 

Safari  7300 CALL 

6300 CALL 


I 


TOLL  FREE  1-800-233-8760 


TO  ORDER 


CALLTOLL  FREE  1  -800-233-8760 

In  PA  71 7-494-1 030 
Customer  SeiviceTI  7-494-1 670 


or  send  order  to 

Lyco  Computer 

P.O.  Box  S088 

Jersey  Shore.  PA 

^^— 1 7740 


RISK  FREE  POLICY 

Insiock  iiems  sfltptwiJ  wilhin  24  hours  of  order  No  deposit  on  C  O.D  orders,  Frrt 
shrpp^ng  on  ptepDid  cash  otflers  within  the  cortlmenial  U  S.  Volume  discounia 
awaiiablo  PA  residents  add  sales  lax.  APO  FPO.  and  international  orcJerg  add 
55  00  plLT^  3»b  for  priority  mail  service  Advaitisflfl  pncas  show  -mti  discount  for 
cash,  add  4=^ti  foi  MaswCatd  or  Visa  Pergonal  checks  require  4  woeks'  ctearance 
balore  shipping  Ask  abpul  UPS  Blue  and  Rbo  tat»l  shipping  All  merchandise 
carried  i/ndei  manulaciurera  warramy.  Fiee  calalog  wiA order  All  items  subject 

in  rninnn  wihrnhnfmri^^— ■^■^^^^■^^^^ 


S£^^^^^^m^i€(£e^ 


JK  ATARI  JK  lappkZlcOMMODORE 


ATARI 

aOOXL CALL 

130XE  (NEW) CALL 

520ST  (NEW) - CALL 

1050  Drive 165 

1010  Recorder 42 

1020  Printer iS 

1025  Prrnler IfS 

1027  Printer 1"9 

850  Interface.. iLiS 

ATARI 

VIP  Professional 74.60 

ST  Carppanion 15.95 

ATARI  SOFTWARE  (NEW) 

Codewriier 35.75 

Filewfiler 20  75 

Reporlwriler 20  75 

Menuwnler 20  75 

Home   Integrator 19.75 

Small  Bus.  Inventory  .,  .11.75 

Salesman  Expenses 11.75 

Aces  Rec'Pay n  .75 

Retail  Invoice 11.75 

Final  Legacv 16.75 

Adventure  Writer 18.75 

BRODERBUND  (Atari) 

The  Print  Sfiop 28.95 

Grapnics  Library )8.95 

GrapiliCS  Library  II 1950 

Bank  Si    Writer 42.75 

Wfiistler's  Brother 18.95 

Sp^k'Hlier 18.95 

srH=ilth  18.95 

INFOCOM  (520ST) 

Wishbnnger 28.95 

Zorkl 28.95 

Zorkll 31.95 

ZorKIII 31.95 

Deadline 33.95 

SlarcroES 33.95 

Suspect 31.95 

Suspended 33.95 

Cuntiroats  28.95 

Sea  Stalker 28.95 

Infidel 31.95 

Sorcerer 31.95 

Enchanter 28.95 

Witness 28.95 

PlanetfaJi.,- 28.95 

SpeliBreaksr 33-95 

SPINNAKER 

Delia  Drawing  Room 19.95 

Cosmic  Lite  Room 19.95 

Up  for  Grabs  F^oom 19.95 

PERSONAL  PERIPHERALS 

Super  Skelch  C-64 29.95 

Printer  Utility  C-64 K.99 

Super  Skelch  Atari ..,,.25.95 

Super  Sketch  Apple/lbm 55.00 


MICROPROSE  (Atari) 

Kennedy  Approach         .21  75 

Crusade  in  Europe 24.75 

Decision  in  Desert 24.75 

Sob  Flight 20.75 

Naio  Commander 20.75 

Spillire  Ace 18.75 

F-15  Strike  Eagle 20.75 

Hellcat  Ace 18.75 

Acroiel 21.75 

Silent  Service 21.75 

Gunship 21.75 

SUB  LOGIC  (Atari) 

FUght  Simulnior  11... .32.75 

.\lignt  Mission  Pinball 20.75 

GLENTOP 

ST  Logo  Book )5,95 

li/!ARK  of  UNICORN  (S20ST) 

HEX. 29  95 

t^lNCE 129  95 

PCdnrerComni 99.95 

FTL  GAMES 

Sundog 29.95 

SIERRA 

ULTIMA  II 39.95 

HABA 

10  Megabyte CALL 

HippoC  Compiler 49.95 

Check  Minder 49.95 

Business  Letters 36  95 

Wills 36,95 

SOFTECHNICS 

Timefink 75.00 

Rhythm 39.95 


SCARBOROUGH  (Apple) 

NET  WORTH 48.75 

Improved  Masiertype 22.75 

Mastertype  Filer 22.75 

BRODERBUND  (Apple) 

The  Print  Shop 31.50 

Graphics  Library 18.50 

Graphics  Library  II 18.95 

Paper  Refill 11.95 

Bank  St  Writer  64K 41.00 

Bank  St  Writer  128K.,.  .42.75 

Bank  St  Filer 42.75 

Bank  St  UiWei 42.75 

Bank  St  Speller 42.75 

Carmen  Sandiego 22.75 

Ka-ateka 22.75 

Captain  Goodnigtit 22.75 

f/uppey  Cruise 25.75 

SUB  LOGIC  (Apple) 

Flight  Simulator  II. ...32.7b 

Night  Mission  Pinoall 20.75 

MICROPROSE  (Apple) 

Crusade  in  Europe 25,75 

Decision  in  Desert 35.75 

F-15  Strike  Eagle 21.75 

Nato  Commander 21.75 

AcroJet 21.75 

Silent  Service 21.75 

Gunship 21.75 

SSI  (Apple) 

Mech  Brigade 36.75 

Norway   ftSS 22.75 

Market  Garden ,.29.75 

Six  Gun  Shootout 24.75 

50  Mission  Crush 24.75 

Phantasie 24.75 

INNOVATIVE  CONCEPTS 

Flip-n-Fils  10 3,50 

Flip-n-Rte15 , 8,25 


COMMODORE 

G-128  NEW GALL 

1571  Drive CALL 

1572  Drive CALL 

1902  Monitor CALL 

1670  Modem CALL 

C-64  Computer CALL 

1541  Drive 189 

fulPSBOl  Printer LOW 

1702  Monitor 199 

Simon's  Basic 24.75 

Assembler  64 34,75 

Super  Expander. 22.75 

MICROPROSE  (C-64) 

Kennedy  Approach 21.75 

Crusade  in  Europe 24.75 

Decision  iri  Desert 24.75 

Solo  Flight 20.75 

Nate  Commander 20.73 

Spitfire  Ace 18.75 

F-15  Sirike  Eagle 20.75 

Hellcat  Ace.....  18.75 

CARDCO 

Digitizer  Camera 189.95 

32K  Printer  Buffer 59.95 

Numeric  Keypad 34.93 

C9/5  5-slot  Board(64)... .54.00 
CB/2  2.slOt  8oardM....25.00 

S'More  Basic  Rom 49.95 

Write  Novj-64 35.00 

Mail   Now-64 29.00 

Spoil  Now-64 29.00 

File  Now-64 29.00 

Paint  Now-64 29.00 

Calc  Now-64 29.00 

EPYX 

(C-84) 

Fast  Load 26.75 

Breakdance 23.75 

Greatest  Baseball 24.75 

Summer  Games 26,75 


US  ROBOTICS 

iPassvutin!  1200M  229 

IPassviord  1200^  229 

Sssworo  3I)0M  139 

iswoil  300F  139 

1212A  ,,.3S9 

3t9 

,519 

769 

379 

469 

tfcrollnh  4B9 

Irtlpac  Ms-OOS  79 

TELE  LEARNING 

[TciiaJ  Teleconmiinications 
«)  299S 

'■260(300  Baud  Apple)  6S,9S 
pB-eSO  (300  Bajd  IBM)       £9,95 


MODEMS 


HAYES 

Smartmodefn  SOO  'jj 

Smafimodem  i200  377 

Smanmodem  12008  347 

Smartropdam  2400  598 

MicrwTxidem  HE  135 


ANCHOR 

VotksrnoOefn 
VoOtsmoOem  12 


BRODERBUND 

The  Print  Shop 28.75 

Graphics  Library 18-75 

Graphics  Library 'I .. .  19,75 
GraphicsLifararylll ,..  19.96 

Karateka 1 9  7,5 

Castfps  Dr.  Creep...  19.75 

Bank  at.  Writer 32  75 

Loderunner 20.75 

Mask  of  the  Sun 24.75 

Spplunker 19.75 

Serpent's  Star 24.75 

'Vhistler's  Brother...  18.75 

SUB  LOGIC  (C-64) 

Flight  Simulator  II....32.75 

Night  fvlission  Pinbail 20.75 

SSI  (C-64) 

Colonial  Conquest 24.75 

Wings  of  War 24.75 

Computer  Ambush 34.75 

Fielcfof  Fire 24,75 

Fighter  Command 36.75 

Kampfgruppe 36.75 

Mecn  Brigade 36.75 

Market  Garden 29.75 

Six  Gun  Shootout 24.75 

Computer  Baseball 24.75 

Computer  Quarterback.  ,24.75 

imperium  Galaclum 24.75 

Phantasie.,... .,.., 24.75 

Cartels  &  Cutthroats 24.75 

50  fvlission  Crush 24.75 

Questron 24.75 


SPINNAKER  (C-64ROM) 

Cosmic  Life  ROfki 19.75 

Jukebox 19.75 

Alphabet  Zoo 17.75 

All  in  Color  Caves 19.75 

Up  for  Grabs 19.75 

Delta  Drawing, 19.75 

Kids  on  Keys 16.75 

Kmdercomp 14.75 

Pacemaker 17.75 

Fraction  Fever 17.75 


iBhnmsmniHie  m    319 

IBM  30(V1iOO/2400  «l  629 

ISM  3(xiria«ie4oo  ms-ixds  579 

.9.V  MS-IXJS  ml  325 

ISM  CPtMS  ml  32$ 

Maonoleffl  300ri200  31S 


3.5"  DISKETTES 

DENNISON 

3.5"  SSDO  ,,,,5  pak  ...  14.95 
3.5"  SSDD....10  pak....  26.95 


RACAL-VADIC     i 

MAXELL 

2400  fk; 

,    549  1 

3,5"  SSDD...,  10  oak,. 

.2S,9S 

24(10PA 

793  i 

3.5"DSDD....10pak.. 

.  36.95 

24CI0V 

ml 

1200TC 

30(W 

329 1 

2051 

3M 

3Q0PC 

199  ' 

3.5"  SSDD....  10  pak.. 

.  26.95 

3,6"  DSDD,  ...lOpak.. 

.  32.95 

SAKATA 

SG  1000  12"  Gruen      99 

SA  1000  12"  Amber,  1C9 

SG  1500  12-  Green  TTL,  119 
S*  1500  12"  Amber  TTL  129 
SC  100  13'  Coloi  Comp,  209 
SC  200  13"  RGB  3B9 

STSl  Till  Slaod  ,  29 


PRINCETON  GRAPHICS 

MAX- 12  Amaer laS 

HX-12  RGB 465 

SF(-12  RGB    595 


TAXAN 

115  12'  Greeen  ComposjJe  ,  CALL" 

116  12"  Amfcer  Composite,,,, CALL 

121  12-  Green  TTL    135 

122  12-  Amto  TTL 145 

220  H"  Color  ComposilB 259 

410  12-  HQB  Hi  Res  IBM 329 

420  12'  RGB  Super  Hi  IBM.  ,409 
440  12-  RGB  Ullra  Hi  Res  ,.,555 
T(ltS:?nd 35 

TEKNIKA 

MJ.10  Composile 179 

MJ-22  RGB 255 


MONITORS 


PANASONIC 

DT1300O  13"  RGaCan(»sae.,..247 
DTM140  14-  R0&Ccmp(»le.,..329 
DTHI03    10'  RGB  Hi  Res  395 

DTSlOl     10    ConpcstB    ,  ,      ,175 

DTlOOCG  10-  RGB 166 

TX12H3P  12-  Color 419 

TR120M1PA  12'  Greer  ,. ![]9 

TRI20MBPA  12"  Amber 1ID9 

TH122M9P     12' Cresn  IBM 148 

TH122MVP    12-  Ambsr  IBM  „  ,148 


ZENITH 

ZVIil  122A  Amber 

ZVM  123G  Green 
ZVM  1 24  Amber  IBM 
ZVfil  131  Colbr 

ZVM  133  RGB 

ZVM  135  Composile,  ,. 
ZVM  136  Hi  Res  Color., 

ZVM  1220 

ZVM  1230 

ZVM  1340,,,., 


AMDEK 

5a0  Green 118 

300  Amber 128 

31Q  Amber  IBfJ 155 

.75    Color  300  Audio 234 

,75    Color  500  Composite 369 

,129     Color  600 397 

275    Color  700 495 

■  M9    Color  710 569 

.Isal  NEC 

.-..95    ja-1260  Green 95 

....95     JS-1201   Green 135 

..149     JC  1215  Color 235 

JC  1215  RGB 375 

JC  K60  Color 265 


LYCO  COMPUTER 
AMERICA'S  MAIL  ORDER  HEADQUARTERS! 


COMPUTEI  Books 

For  Kids 


m 


i^maaa 


Help  your  children  learn  the  basics 
of  computer  programming  with  these 
two  new  entertaining  and  educational 
books  from  COIMPUTEI. 


0-67455-038^ 
$14.95 


0-87455-032-7 
$!4.95 


Each  book  contains  easy-to-follow  Instructions,  programming  examples,  quick  reviews,  and 
colorful  Illustrations.  Written  In  COMPUTEI's  clear,  easy-to-undersfand  style,  the  books  offer 
hours  of  entertainment  while  helping  kids  (and  adults)  learn  to  program  in  BASIC. 

if  you're  acquainted  with  BASIC,  you  can  easily  write  your  own  games  and  applications  on 
Atari's  ST  or  Commodore's  128  computers.  Over  30  sections — all  with  Instructor  notes, 
lessons,  assignments,  and  lively  Illustrations — entertain  and  amuse  as  you  learn  to  use 
these  powerful  computers.  COMPUTEI's  Kids  and  the  Atari  ST  and  COMPUTEI's  Kids  and  the 
Commodore  128,  In  the  bestseiling  series  from  author  Edward  Carlson,  are  gentle 
introductions  to  programming  your  new  computer.  Clear  writing  and  concise  examples, 
both  trademarks  of  this  series,  make  it  easy  for  anyone — child  or  adult — to  learn  BASIC 
painlessly. 


r" 


Look  for  these  and  other  books  from  COMPUTE! 
al  book  store  or  computer  store.  Or  order  directly  from  COMPUTEL 


To  order,  call  toll  free  In  the  US  1-800-346-6767  (In  NY  212-265-B360)  or  mall  the  attached  coupon  with 

your  payment  to  COMPUTEI  Books,  P.O.  Box  5038,  F.D.R.  Station,  Now  York,  NY  10150. 
Please  send  me  the  following  COMPUTEI  books.  My  payment  Is  enclosed. 

COMPUTEI's  Kids  and  the  Commodore  i 28,  i032-7)$U.9Sieact\  

COMPUTEI's  Kids  and  the  Atari  ST,  (038-6)  $14.95  each  

Subtotol  


ALL  ORDERS 

MUST  BE 
PREPAID  IN 
U.S.  FUNDS 


D  Payment  enclosed  (check  or  money  order) 

D  Charge     D  MasterCard     n  Visa    n  American  Express 


UC  residents  odd  4.5%  soles  tax 
Shipping  and  handling  per  book 
(In  U.S.  and  surface  moll,  $2.00  per 
book;  airmail.  $5.00  per  book.) 
Total  omount  enclosed 


Account  No. 

Name 

Address 


Exp.  Dale  . 


(Required) 


City 

State 

Please  allow  4-6  weeks  (or  delivery. 


.Zip, 


36412011 


COMPUTEr  Publications  Jnc.  ffl 


COMPUTEI  books  are  available  In  the  U.K.,  Europe,  the  Middle 
^^      East,  and  Africa  from  Holt  Saunders,  Ltd.,  1  St.  Anne's  Rood, 
^7VZZ.  r^  Nr?SrNv  ,00,9  "^       Eastbourne,  East  Sussex  BN21  3UN,  England  and  in  Canada  from 

»o<col^mm^coM^re^■sgIW•,(:!>*^JII'••Gm•™l]*.c<»*TOl^x»l.ono<»*uItrl^^  Holt,  Rinefiorf,  &  Winston,  55  Homer  Avenue,  Toronto,  ON  M8Z  4X6. 


program  could  make  the  world  differ- 
ent each  time.  Surprisingly,  Heart  of 
Africa  offers  no  such  option.  There  are 
very  good  reasons  for  this — the  time 
limit,  and  the  quest  itself — but  perhaps 
the  game  would  be  even  more  complete 
if  each  Africa  could  be  a  new  one.  Dis- 
coveries are  less  exciting  when  you 
know  about  them  beforehand.  Further- 
more, the  desperate  feeling  of  being 
hopelessly  lost,  which  Seven  Cities  of 
Gold  presented  so  well,  cannot  happen 
here.  If  the  game  has  a  flaw,  this  is  it. 

But  the  flaw  is  easily  overcome. 
The  romance  of  uncovering  the  Dark 
Continent  captures  the  imagination  to- 
day as  much  as  ever,  perhaps  because 
there  remain  no  large,  unexplored  land 
masses  anywhere  in  the  world.  Heart  of 
Africa  lets  you  canoe  down  the  Congo, 
meet  a  Zulu  chief,  and  even  get  caught 
in  a  whirlpool  near  Stanley  Falls.  Khar- 
toum, Timbuktu,  the  Zambesi,  Lake 
Tanganyika,  Tangier — they're  all  there, 
waiting  for  you,  ready  to  throw  you 
many  surprises. 

An  almost  flawless  development  of 
an  already  excellent  game  system. 
Heart  of  Africa  should  excite  anyone 
who  found  Seven  Cities  of  Gold  even 
remotely  interesting.  Now,  if  only  I 
could  find  Dr.  Livingstone. 

Heart  of  Africa 
Electro7iic  Arts 
2755  Campus  Drive 
San  Mateo,  CA  94403 
$32.95 


Hacker 


Todd  Heimarck,  Assistant  Editor 

Reijuirements:  Commodore  64  or  128;  Ap- 
ple Il-series  computer  with  at  least  64K 
RAM;  Atari  400/800,  XL,  or  XE  with  at 
least  48K  RAM;  IBM  PC/PCjr  loith  at 
least  128K  RAM;  Atari  ST;  Amiga;  or 
Apple  Macintosh.  Disk  only. 

When  the  first  thing  vou  see  is  the 
prompt  LOGON  PLEASE:,  you  want  to 
reach  for  the  rule  book.  But  apart  from  a 
card  that  tells  you  how  to  load  and  run 
this  game,  there  are  no  instructions. 
None  at  all. 

The  premise  behind  Hacker  is  that 
you  have  stumbled  across  a  telecom- 
munications system  about  which  you 
know  nothing.  Being  a  good  hacker  (if 
that's  not  an  oxymoron),  you  feel  the 
urge  to  break  in  and  explore.  Try  a  few 
passwords;  unless  you're  very  lucky, 
none  of  them  vvill  work.  After  several 
failures,  the  system  logs  you  off  and  the 
game  ends.  Or  does  it?' Some  random 
characters  appear  on  the  screen,  and 


If]  HP  EH] 

L>      I]    -  L  .-I 


M  '  ^  ■ 


XJFJ 


m 


On  the  trail  of  corporate  skullduggery  in 
Actiuision's  Hacker  (Commodore  64 
version). 

the  computer  indicates  that  a  security 
malfunction  has  occurred.  You're  in. 

The  logon  sequence  is  very  realis- 
tic. Once,  at  the  beginning  of  a  game, 
someone  walked  into  the  room  and 
watched  me  guess  at  a  few  passwords. 
Hearing  that  we  were  trying  to  get  into 
an  unknown  system,  which  might  be  a 
government  computer,  and  then  seeing 
the  security  malfunction  message,  he 
got  worried  and  reminded  us  that  it's 
illegal  to  do  what  we  were  doing.  That's 
the  great  appeal  of  Hacker,  the  feeling 
that  you're  doing  something  wrong  and 
that  you  might  get  caught.  Who  knows, 
the  FBI  might  even  show  up  at  your 
door  and  confiscate  your  computer. 

After  you  enter  the  system,  the 
game  becomes  less  realistic.  On  an  ac- 
tual telecommunications  system,  every- 
thing would  be  straight  text.  The  author 
o[  Hacker,  in  the  interests  of  playability, 
has  inserted  some  high-resolution 
graphics — unlike  anything  you'd  see 
on  a  true  bulletin  board  system  or  infor- 
mation service.  However,  the  graphics 
do  add  a  lot  to  the  game. 

Remote-Control  Robots 

You  soon  discover  that  you've  come 
across  a  company  involved  in  some  sort 
of  top-secret  illegal  project.  This  makes 
you  feel  less  guilty  about  breaking  into 
someone's  system;  you  can  seek  out 
more  information  about  this  project 
and  bring  the  culprits  to  justice. 

The  company  owns  a  vast  network 
of  subterranean  tunnels,  and  their  com- 
puter (to  which  you've  gained  access) 
controls  robots  that  travel  through  the 
tunnels.  By  using  the  robot  to  explore 
the  tunnel  network  and  occasionally 
coming  to  the  surface,  you  can  accumu- 
late more  details  about  the  project.  I'll 
say  no  more  about  the  most  effective 
techniques  for  winning  because  an  im- 
portant part  of  the  game  is  figuring  out 
what's  going  on. 

The  game  play  is  almost  identical 
in  the  versions  1  tried  on  the  Commo- 
dore 64,  Atari  520ST,  and  Amiga.  The 
newer  16-bit  machines  (Amiga  and  ST) 
displayed  slightly  better  graphics  than 


the  64  because  their  screens  have  high- 
er resolution  and  more  colors,  The  ST 
version  works  on  both  monochrome 
and  color  monitors. 

All  things  considered.  Hacker  is  a 
worthy  addition  to  your  software  col- 
lection, especially  if  you  enjoy  adven- 
ture games  that  require  a  bit  of  thought 
and  an  investment  of  time. 

Hacker 

Activision,  bic. 

2350  Bayshore  Frottfage  Road 

Mountain  View,  CA  94043 

S24.95  (Atari  400/800/XL/XE) 

S29.95  (Commodore  64/128) 

S39.95  (Apple  and  IBM) 

S44.95  (ST,  Amiga,  and  Macintosh) 


MasterType's 
Writer  For  Apple 

Stephen  Levy,  Book  Editor 

Requirements:  Apple  He  or  Apple  He  with 
128K  RAM  ajid  a  printer.  A  Commodore 
64/228  version  is  scheduled  for  release 
this  spring. 

Does  the  world  really  need  another 
word  processor?  After  all,  MasterType's 
Writer  does  all  the  things  most  word 
processors  do.  Using  direct  commands 
or  on-screen  menus,  you  can  write, 
edit,  save,  search,  move,  change,  find 
and  replace,  and  print  just  as  you  can 
with  most  full-featured  word  process- 
ing programs. 

So  what  makes  MasterType's  Writer 
special?  If  you're  using  it  with  an  Apple 
Ilc/lle  and  an  Imagewriter  or  Image- 
writer  II  printer,  and  if  you  need  multi- 
ple fonts — including  some  very  targe 
print  styles — Writer  is  worth  a  closer 
look,  even  if  you  already  have  a  word 
processor.  With  an  Imagewriter  or 
Imagewriter  II,  Writer  can  dump  an  ex- 
act copy  of  what's  on  the  screen  to  the 
printer.  Writer  comes  with  eight  fonts 
which  can  be  loaded  from  disk  and 
saved  with  your  text.  Among  the  styles 
are  fonts  that  print  very  large  type  to 
the  screen,  quite  suitable  for  use  by 
young  children  just  learning  to  read; 
proportionally  spaced  fonts  of  various 
sizes;  and  a  style  that  is  quite  suitable 
for  use  on  a  monochrome  monitor. 

Each  font  can  be  edited,  so  you  can 
modify  those  provided  or  design  your 
own  completely  new  font.  And  once 
created,  you  can  use  the  screen  dump 
feature  to  duplicate  text  written  with 
the  new  font  on  paper. 

If  you  have  an  Imagewriter  II  with 
a  color  ribbon,  it's  a  simple  matter  to 
print  text  in  color — simply  underline 


April  1 986     COMPUTEl        65 


the  text  to  be  printed  in  green  with  a 
green  line,  blue  text  with  the  blue  line, 
and  so  on.  Again,  you  get  an  exact  copy 
on  paper. 

Some  Nice  Touches 

In  addition  to  the  fancy  printing  fea- 
tures, MasterType's  Writer  includes  a 
few  other  extras.  For  example,  the  on- 
disk  tutorial  is  well  done  and  is  a  good 
introduction  to  using  the  program. 
Many  people  will  return  to  the  tutorial  a 
second  or  third  time  even  after  they've 
started  creating  documents. 

With  Writer's  dual  windows,  you 
can  work  on  two  documents  at  the 
same  time.  You  can  have  an  outline  in 
one  window  and  the  text  you're  writing 
in  the  other.  If  you've  never  used  this 
kind  of  feature  before,  you  might  not 
miss  it;  but  once  you've  tried  it,  you'll 
wonder  how  you  got  along  without  it. 
Writer's  dual  windows  have  the  added 
advantage  of  allowing  you  to  decide 
how  much  of  the  screen  each  window 
will  occupy  at  any  time. 

The  manual  is  arranged  in  alpha- 
betical order  with  entries  for  most  of  the 
terms  you're  likely  to  look  up.  Usually  a 
term  refers  you  to  the  appropriate  in- 
structions. If  you're  the  type  who  likes 
to  jump  right  in,  you  may  find  the 
manual  a  bit  frustrating.  But  if  you've 
tried  the  on-disk  tutorial,  you'll  find  the 
manual  easy  to  use.  And  once  you've 
been  using  Writer  for  awhile,  an  alpha- 
betically arranged  manual  makes  locat- 
ing information  a  snap. 

Another  powerful  feature  oi  Master- 
Type's  Writer  is  keyboard  macros — you 
can  recall  a  series  of  instructions  with  one 
or  two  keystrokes.  Macros  are  especially 
handy  for  storing  a  series  of  often-used 
words.  If  you're  writing  a  book  report,  for 
example,  you  might  need  to  type  the 
author's  name  or  the  book's  title  many 
times  throughout  the  report.  By  defining 
these  phrases  as  macros,  you  can  type 
them  simply  by  pressing  two  keys. 

Since  macros  can  include  program 
commands  as  well  as  ordinary  charac- 
ters, you  can  create  macros  for  such  pur- 
poses as  saving  your  document  on  disk. 
Then,  whenever  you  want  to  save  the 
current  copy  of  your  work,  you  just  press 
two  keys. 

Ease  Of  Use 

MasterType's  Writer  gives  you  the  choice 
of  using  direct  commands — usually  ac- 
cessed by  pressing  CONTROL  and  one 
other  key — or  menus.  Moving  through 
the  menus  is  easy  and  fast  and  saves  you 
the  trouble  of  memorizing  commands. 
The  menus  are  ideal  for  those  new  to 
word  processing.  Direct  commands  are 
faster  for  some  functions,  but  for  others 
save  little  more  than  one  or  two  key- 
strokes. Most  people  will  probably  use  a 


combination  of  both  menus  and  direct 
commands. 

If  you  revise  text  often,  one  aspect  of 
MasterType's  Writer  you  may  find  an- 
noying is  its  text  entry  and  editing  line. 
Writer  doesn't  allow  full-screen  editing; 
all  text  must  be  entered  and  edited  on  the 
bottom  line  of  the  current  window.  That 
means  you  must  press  the  cursor  keys  to 
move  the  line  you  wish  to  edit  to  the 
bottom  of  the  window.  This  isn't  a  prob- 
lem when  first  entering  text,  but  later, 
when  editing,  you  can't  see  what  comes 
immediately  after  the  line  you're  trying 
to  alter  without  continuously  moving  the 
text  up  and  down. 

For  whom  is  MasterType's  Writer 
most  suitable?  It  should  be  strongly  con- 
sidered by  those  who  have  never  used  a 
word  processor,  teachers  or  students  who 
plan  to  use  it  in  schools,  Apple  users  with 
an  Imagewriter  printer,  or  anyone  who  is 
unhappy  with  their  current  word  pro- 
cessing program. 

MasterType's  Writer 
Scarborough  Systems,  Inc. 
55  South  Broadway 
Tarry  town,  NY  10591 
$69.95 


HabaWrifer 
For  The  Atari  ST 


George  Miller 

Assistant  Technical  Editor 


Requirements:  Atari  ST  with  at  least  512K 
RAM  and  a  compatible  printer. 

If  you've  been  using  ST  Writer,  the  free 
word  processor  from  Atari,  but  have 
been  wishing  for  a  program  that  sup- 
ports the  drop-down  menus  and  win- 
dows of  GEM,  then  HabaWriter  is  for 
you. 


fed    Filr    U-.J   S*-ircfc   fm:   Jtili 


hiiii^^i'^  **f 


ft» 


vat  If  iktUwinr  w^  mcKBttr  Ar 


ItrESaST.^ 

h  l«rt  wr»»  IrfiK  n  rtr  Irti,  mi  ^XntOn  JKOtt  ttr 
rtfH  ftr  ri^  ktju  ilM^U  jl  tk  n^l  ^  ^n  U  d> 
Irh.  It  fcB'l  PTTtir  ifczt  w  T*f  Wf.  jiKf  Oil  IS 
JET  (tr  4  tt^  Mri  Oni  mrb  m'I  k  ntiLt  u  'Or 
mm*  l^  «|ni-  t 

ImrtWIm,  Uttt'i  t  itrun  9fm\  il  tstm  a  Htuf 
ewt  All  imibtt  rtsx.  «rm  lift  nvTEkiH  Itkt  J  rr»l 
teHcn.  T^  K  wtfi  Vt^mn  uri;  «l  ml  «r«, 
■TB^  ixt»  ml  itren.  Hast  flnsb  ^  dn  Ir 
wrm/gi  utt  iprar^  *ii^  maklr  4i  srt  ri  tkaj 
ax  mtlt  ntF.  Mrchr  ■-  hi  tkv  rrvvb  aam 
■I mill!  is  mM^  mam  il'mnkt...^ 


aEnn: 


HabaWriter  takes  advantage  of  the 
GEM  environment  and  includes  all  the 
features  we've  come  to  expect  in  a  good 
word  processor.  Even  more  important, 
HabaWriter  is  easy  to  use.  The  instruc- 
tion manual  isn't  very  long — only  46 
pages.  If  you're  accustomed  to  other 
word  processors,  this  may  seem 
strange.  Many  programs  have  entire 
books  devoted  to  their  use,  and  some- 
times it's  necessary  to  enroll  in  special 
classes  to  become  really  proficient. 
Even  though  the  size  of  the  HabaWriter 
manual  is  small,  all  the  information 
you'll  need  is  there. 

When  you  start  up  HabaWriter,  you 
see  a  menu  bar  at  the  top  of  the  screen 
with  seven  headings:  Desk,  File,  Edit, 
Search,  Format,  Style,  and  Print.  Just  as 
on  the  GEM  desktop,  each  menu  in- 
stantly drops  down  when  you  point  to 
it  with  the  mouse.  A  click  of  the  mouse 
button  picks  any  selection  on  the  cur- 
rent menu.  Happily,  HabaWriter  is  an 
intuitive  program — the  way  you  want 
to  do  something  is  probably  the  way 
HabaWriter  requires  you  to  do  it.  And 
the  commands  on  the  menus  allow  you 
to  do  just  about  everything  you  can 
think  of. 

If  you  prefer  not  to  use  the  mouse, 
the  ST's  ten  special  function  keys  let 
you  access  most  of  HabaWriiefs  fea- 
tures. If  you  can't  remember  which  key 


66    COMPUTE!     April  1986 


does  what,  just  press  the  Help  key.  A 
window  opens  on  the  screen  to  display 
a  convenient  chart  of  the  function  key 
commands. 

You  can  even  use  the  Style  menu 
to  change  the  on-screen  typeface  from 
plain  text  to  boldface  or  underline.  Un- 
derlined text,  however,  is  displayed  with 
true  underlining  only  on  the  mono- 
chrome monitor  in  high-resolution 
mode;  it  won't  be  underlined  on  the 
color  monitor  in  medium  resolution. 
But  when  you  print  your  document,  the 
text  is  underlined.  (If  you're  using  a 
printer  that's  capable  of  underlining,  of 
course.) 

Multiple  Windows 

HabaWriter  lets  you  use  the  mouse  for 
most  functions  that  would  require  spe- 
cial commands  with  other  word  proces- 
sors. For  instance,  you  can  define  a 
block  of  text  simply  by  dragging  the 
mouse  cursor  over  it.  To  delete  the 
block,  you  would  then  select  the  Cut 
option  from  the  Edit  menu.  Even 
though  the  text  is  erased  off  the  screen, 
it's  still  kept  temporarily  in  a  clipboard 
and  may  be  pasted  back  into  the  docu- 
ment wherever  you  wish. 

HabaWriter  uses  screen  windows 
for  other  purposes,  too.  You  can  open 
up  to  six  windows  to  display  more  than 
one  document  at  a  time.  Moving  text 
between  the  windows  is  as  easy  as 
moving  text  within  a  document.  And 
the  size  of  the  windows  can  be 
changed,  just  as  with  any  GEM  win- 
dow. Files  can  even  be  combined,  al- 
lowing you  to  work  with  longer 
documents  by  using  the  Paste  Docu- 
ment option. 

On-screen  rulers  let  you  easily  set 
tab  stops  anywhere  you  want,  and  hori- 
zontal scrolling  lets  you  create  docu- 
ments as  wide  as  132  columns.  (Only 
80  columns  are  displayed  on  the  screen 
at  a  time.) 

Using  options  on  the  Format 
menu,  you  can  center  text  on  the 
screen,  align  it  to  the  right  or  left  mar- 
gins, or  "justify"  the  text,  just  as  profes- 
sionally typeset  pages  appear. 

HabaWriter's  use  of  the  GEM  envi- 
ronment and  its  wide  range  of  features 
make  it  one  of  the  most  attractive  appli- 
cation programs  to  date  for  the  Atari 
ST.  You'll  find  it's  a  snap  to  give  your 
correspondence  and  club  newsletters  a 
polished  look— without  much  of  the 
strain  that's  usually  involved  in  learn- 
ing how  to  use  a  new  word  processor. 

HabaWriter 
HabaSystems,  Inc. 
6711  Valjean  Avenue 
Van  Nuys,  CA  91406 
S74.95 


MUST  LIQUIDATE! 

COMMODORE  PLUS/4£ 

COMPUTER  SYSTEM 

AT  BELOW  DEALER  COST!  r~~ 


NOTE:  Monitor  not 
availablfl.  The    Plus/4'" 
can  hook  up  to  your  TV. 


Factory  new! 
Factory  warranted  by  Commodore®.  Built-in 
software  for  word  processing,  data  process- 
ing, spreadsheets  and  128  color  graphics! 

Commodore®  designed  this  Plus/4"  specifically  for  program- 
mers and  small  businesses!  And  tfien  they  made  it  VERY  EASY 
to  learn  and  use  for  novices.  Popular  business  software  is 
available  for  a  variety  of  purposes.  For  programmers,  this 
machine  has  easy-to-use  powerful  commands  and  60K  of 
usable  memory.  Can  hook  up  as  many  as  four  disk  drives. 

Team  up  the  computer  with  our  compatible  units  of  famous 
brand,  factory  reconditioned  and  warranted  DISK  DRIVE  and 
DOT  MATRIX  PRINTER!  Sorr/.  we  can't  print  the  brand  name  of 
the  disk  drive  and  printer.  But  phone  us  Toll- Free  and  we  can  tell 
you.  With  Disk  Drive  for  data  storage  and  Printer  for  "hard 
copies",  you'll  have  a  complete  system. ..at  low  liquidation 
prices.  Order  TODAY! 

Units  sold  indtvidually  or  In  anv 
combination  you  desire. 


PLU5/4  COMPUTER 

Item  H-1087-S035-CX)1  Ship.  hand.  $8.00 


DISK  DRIVE 

Item  H-1087.3S53.013  Ship,  hand   SS.OO 


PRINTER 

Hem  H  1097-3831  -005  Ship,  hand'  S7.00 


TOTAL 

Ship,  hand:    S23.00 


Original 
List  Price 


»299.00 


*269.00 


*200.00 


«768.00 


YOUR 
COST 


»79 


»149 


»119 


»347 


Additional  Features  of 

COMMODORE  PLUS/4 

Dale  base  of  999  rocord&,  Com- 
puierHolds  99  lines  of  loxt  before 
it  must  be  transferred  to  disk 
dftve.  Excellent  terminal  for  use 
withmodem.  12Bcolorsavailable 
for  graphics.  Split  screen  and 
windowing  capabilities  Compat- 
ible wilh  all  Commodore  bard- 
ware  except  jjoystick  and  dataset. 
NOT  compatible  with  C64 
software. 

DISK  DRIVE 

Intelligent^  high-speed.  External 
5Vi"  floppy  diskette  recorder.  2K 
RAM,  16K  ROM.  Maximum  star- 
age  of  170K  formatted  data:  35 
tracks.  Uses  sir^gle  sided,  single 
density  disk.  Serial  interface. 
Second  serial  port  for  chaining 
second  drive  or  printer.  Data 
transfer  rate  of  400  bytes  per 
second. 

DOT  MATRIX 
PRINTER 

B (-directional  6x7  dot  matrix 
impact  printer.  60  characters  per 
second.  Has  upper  and  lower 
case  letters,  numerals  and  sym- 
bols. All  PET  graphic  characters. 
Siendaird  friction  feed.  M  aximum 
ofBOcolumnswidth.  dot  address- 
able. CBM,  ASCII  character 
codes.  Original  plus  maximum  of 
two  copies.  Paper  width:  4.5"  to 
a.5".Size:13"Wx8"Dx3V*"H, 
Weight:  SVa  lbs. 


COMPLETE  SYSTEM 

WITH  20  FREE  FLOPPY  DISKS 
Total  Original  Ust  . .  .  ^877.00 

Uquidation  ^ 

Priced  At  Only ... 

Hem  H. 1087.5035-019  Ship,  hand  S19  00 


Credrt  card  customers  can  .p^^-j,; — v  i  f^^^i' 
order  by  phone.  24  hours     h4oit«cort,       vfiA 
a  flay,  7  flays  a  week.         '^-  -■■■-..^   ^■■B 

Toll-Free:  1-800-328-0609 

Your  check  is  welcome! 

No  delays  in  orders  paid  by  check. 

Sales  ojtside  continental  U.S  are  subject  to  special 
conddions  Please  call  or  wr«te  to  inquire. 


'  C.O.M.B.  Oirect  Marketing  Corp.                      Item  H-1087 

I  14605  28th  Ave.  N. /Minneapolis,  MIM  55441-3397 

I  Send  the  following  Items  (Minnesota  residents  add  6%  sales 

'  tax  Allow  3-4  weeks  for  delivery  Sorry,  no  CO  D  orders) 

I  Send COMPLETE   SYSTEMIs)  Commodore-    Plus/4^^. 

J  Disk  Drive,  Printer  and  Floppy  Disks  Item  H- 1087-5035-01 9  at 

I  S339  each  pius  SIS  each  for  ship,  handling 

I   Send COMMODORE*    PLUS/4t^-  COMPUTER|s)ltem 

•  H- 1087-5035-001  a[S79eachplus  SSeach for  ship. har^dlmg. 

I  Send DISK  DRIVE(aJ  hem  H-10S7-3553-O13  at  S149 

.  each  plus  S8  each  for  ship,  handling. 

I  Send^PRIftJTER^sJ  Item  H-10S7  3831  005  at  S119  each 

I  plus  S7  each  for  ship,  handling. 

D  My  check   or   money  order   is   enclosed,   (No  delays   in 

I  processing  orders  paid  bv  check,  thanks  to  TeleCheck.) 


C.O.M.B. 


I   Charge:  c  MasterCard, 

IAcct.  No   
PLEASE  PfiiNT  CLEARLY 

I    Name    

I    Address    


J- 


■  Wb  In  ■  D  ■  Direct  Marketing  Corp. 

Authorized  Liquidator 

14605  28th  Avenue  North 

Minneepolis.  Minnesota  66441-3397 


I   Ciiy 
I   State 


Sign  Here— 


Loading  And  Linking 
Commodore  Programs 

Part  2 


Jim  Butterfield,  Associate  Editor 


Are  you  running  out  of  memory  for 
your  programs?  You  don't  necessarily 
have  to  buy  a  bigger  computer.  This 
month's  installment  shows  how  a 
technique  called  chaining  lets  you 
break  up  a  large  program  into  smaller 
parts  to  work  on  a  common  task.  The 
technique  applies  to  all  Commodore 
computers,  with  either  disk  or  tape. 


There  are  three  major  ways  of  con- 
necting programs  together.  Chain- 
ing allows  several,  programs  to 
perform  a  job,  each  program  con- 
tinuing the  work  that  a  previous 
program  has  started,  load  linking 
lets  one  program  load  another  pro- 
gram, with  the  new  program  start- 
ing fresh  on  a  new  task.  Overlaying 
lets  a  main  program  call  in  addi- 
tional subroutines,  data  tables,  or 
graphics  information.  This  month 
we'll  discuss  chaining. 

When  one  of  a  series  of  pro- 
grams has  completed  its  share  of 
the  work,  it  may  chain  to  a  follow- 
ing program  to  continue  processing 
the  data.  In  effect,  several  programs 
group  together  to  create  a  bigger 
program.  On  Commodore  comput- 
ers, chaining  works  with  disk  or 
tape.  It's  more  common  with  disk 
because  the  various  programs  can 
be  brought  in  more  quickly.  If  used 
with  tape,  you  can  arrange  the  pro- 
grams sequentially  on  the  cassette 
so  little  time  is  lost  in  searching  for 
the  next  program.  We'll  use  disk  for 
the  following  examples,  but  they 
can  be  readily  converted' to  tape. 


Why  Chaining? 

The  most  obvious  reason  to  chain 
programs  is  to  save  memory  space. 
On  small  computers,  there  isn't 
enough  room  for  big  jobs.  So  the 
program  is  broken  up  into 
"chunks."  Each  chunk  is  small 
enough  to  fit  into  memory,  each 
does  a  specific  task,  and  together 
they  do  the  whole  job.  Even  on 
computers  that  seem  to  have  lots  of 
memory,  you  may  need  to  resort  to 
chaining  to  relieve  congestion.  For 
instance,  even  though  the  Commo- 
dore 64  begins  with  38,911  bytes  of 
free  memory,  arrays  of  data  can 
quickly  fill  up  much  of  this  work 
area. 

Sometimes  program  flow  is  an 
important  reason  for  chaining.  If  a 
statistical  program  has  been  pro- 
cessing some  data,  it  might  ask  the 
user  to  choose  from  several  options 
(draw  a  graph,  print  the  data,  etc.). 
Depending  on  which  option  is  cho- 
sen, it  may  be  convenient  to  call  in  a 
selected  program  to  do  the  next  job. 
In  this  way,  the  original  program 
needn't  be  cluttered  with  code  to 
cover  all  the  possible  options;  in- 
stead, the  options  are  handled  by 
programs  called  in  as  required. 

Likewise,  it's  possible  to  write 
a  program  that  starts  up  in  several 
different  ways.  In  one  case,  it  might 
collect  the  data  it  needs  from  DATA 
statements.  Another  time,  it  might 
require  input  from  the  keyboard. 
On  still  other  occasions,  it  might 
compute  the  data,  read  it  from  a 
file,  or  detect  it  by  external  sensors. 
No  matter.  We'll  start  up  whatever 
"acquisition"  program  is  appropri- 
ate, and  when  the  data  is  ready  to  be 


processed,  the  computer  can  chain 
to  a  common  processing  program. 
Chaining  is  also  a  worthwhile 
exercise  which  can  force  you  to 
break  your  programs  into  well 
thought-out  modules.  Your  pro- 
gram can't  leap  about  at  will,  since 
it  can  only  reach  whatever  is  in  the 
current  module;  and  you  must  tie 
up  loose  ends  before  you  go  to  the 
next  unit.  Each  time  you  chain, 
FOR-NEXT  loops  are  scrapped, 
subroutine  RETURNs  are  canceled, 
and  the  DATA  pointer  is  RE- 
STOREd.  You  must  make  sure  that 
these  program  areas  are  tidy  before 
you  chain,  since  they  will  otherwise 
be  lost. 

Program  Architecture 

A  major  advantage  of  chaining  is 
that  you  don't  lose  variables  between 
programs.  Values,  strings,  and  ar- 
rays that  have  been  worked  out  by 
a  previous  program  are  carried 
through  to  the  next  program  seg- 
ment. This  is  useful,  but  it  also  calls 
for  careful  handling — we  don't  want 
to  mash  these  values  inadvertently. 

Figure  1  shows  how  programs, 
variables,  and  arrays  lie  in  memory. 
The  point  marked  start-of-BASIC  is 
where  the  program  starts  in  memo- 
ry. Behind  the  program  is  a  point 
called  start-of-variables;  beyond 
this  point  the  computer  stores  vari- 
ables and  arrays. 

You  usually  don't  need  to 
know  the  exact  addresses  of  these 
memory  points;  the  computer  takes 
care  of  the  housekeeping  for  you. 
String  variables  go  into  this  area, 
too — although  not  the  strings  them- 
selves, just  three-byte  descriptors 


6a     COMPUTEI     April  19B6 


that  say  where  the  strings  are  locat- 
ed and  how  long  they  are.  (More  on 
this  later.) 

Suppose  you  have  a  large  pro- 
gram that  chains  to  a  smaller  pro- 
gram. Figure  2  shows  this 
happening. 

The  variables  don't  move;  be- 
hind the  second  program  is  wasted 
space  that  isn't  used.  This  creates 
no  problem  when  you  run  the  pro- 
gram. However,  after  this  kind  of 
chaining  has  taken  place,  you 
should  not  SAVE  the  second  pro- 
gram or  you'll  save  the  wasted  area 
too  (SAVE  always  stores  from  the 
start-of-BASIC  point  to  just  before 
start-of-variables). 

Here  comes  the  problem.  Let's 
take  the  reverse  situation:  a  small 
program  that  chains  to  a  larger  one. 
Figure  3  shows  the  difficulty  that 
results. 


The  big  program  overwrites 
and  destroys  the  variables  created 
by  the  first,  smaller  program.  To 
keep  this  from  happening,  our  first 
program  must  be  the  biggest  of  the 
two,  or  at  least  the  same  size. 

If  several  programs  are  chained 
together,  this  rule  always  applies. 
The  first  program  must  be  as  big  or 
bigger  than  any  other  program.  It 
sets  the  start-of-variables  point, 
and  it  must  set  it  high  enough  so 
that  all  following  programs  won't 
run  into  trouble  (for  more  infor- 
mation on  this  point,  see  "Commo- 
dore Program  Chaining,"  COMPUTE!, 
December  1985).  The  Commodore 
128  in  128  mode  doesn't  need  to 
worry  about  this  problem.  Since  it 
keeps  variables  in  a  separate  mem- 
ory bank,  loading  a  new  BASIC 
program  can't  harm  them. 


Figure  1 .  basic  program  storage 


Program  text 


Variables 


Arrays 


t 

Start  of  BASIC 


Start  of  Variables 


Figure  2.  Chaining  a  smaller  program  from  a  large  one. 


Program  1 


Variables 


Chains 

Program  2 

1                                               1 
1                                              1 

Program  text 

Unused 

Variables 

t 

Start  of  BASIC 


Start  of  Variables 


Figure  3.  Chaining  a  larger  program  from  a  smaller  one. 


Program  I 

Variables 

Chains 

Program  2 

1 

t 

Start  of  BASIC  Start  of  Variables 

Chaining  a  longer  program  destroys  the  original  program's  variables. 


Strings  And  Descriptors 

As  noted  earlier,  the  variable  and 
array  area  holds  string  information 
(the  descriptors),  but  not  the  strings 
themselves.  There  are  two  places 
where  the  actual  strings  might  be, 
and  it's  important  to  know  about 
them.  Say  that  your  program  con- 
tains a  line  like  this: 
370  A$  =  "GORILLA" 

When  this  line  executes,  the 
computer  makes  an  entry  in  the 
variable  table  showing  that  there  is 
now  a  variable  called  AS,  that  its 
length  is  seven  characters,  and  that 
it  is  located  at  its  present  position  in 
the  program  text  itself.  Except  on 
the  128,  the  string  is  used  from 
where  it  lies  within  the  program. 
The  computer  decides  that  there's 
no  point  in  making  an  extra  copy  of 
GORILLA;  when  it  needs  this 
string,  it  takes  it  from  the  BASIC 
program  line.  This  type  of  string  is 
called  static  because  it  never  moves 
from  its  original  location.  Static 
strings  can  mean  trouble  if  you 
chain  programs:  Since  chaining  re- 
places the  original  program  text 
with  a  second  program,  all  static 
strings — which  exist  only  in  the 
first  program's  text — are  destroyed. 

There's  a  second  kind  of  string, 
and  that's  the  one  we  must  use 
here.  If  a  program  contains  a  state- 
ment like  INPUT  A$,  the  string 
which  is  typed  by  the  user  must  be 
stored  somewhere.  This  is  called  a 
dynamic  string;  the  computer  stores 
it  in  a  safe  place  where  it  won't  be 
disturbed  by  chaining. 

Dynamic  strings  are  created  in 
two  ways:  by  INPUT  or  GET  state- 
ments and  by  string  manipulations 
(LEFT$,  RIGHTS,  STR$,  concatena- 
tion, and  so  on).  It's  simple  to 
change  a  static  string  into  a  dynam- 
ic one.  The  statement  A$  =  "GOR- 
ILLA" -I-  ""  concatenates  (adds 
together)  the  strings  "GORILLA" 
and  "".  Since  '"'  is  a  null  (empty) 
string,  this  statement  really  means 
"add  nothing  to  the  string  GORIL- 
LA." Though  the  contents  of  the 
string  don't  change,  the  computer  is 
convinced  that  we  now  have  a  new 
string  which  must  be  stored  else- 
where in  memory. 

Again,  the  Commodore  128  in 
128  mode  doesn't  need  to  worry 
about  this  problem.  Strings  are  kept 
in  a  separate  memory  bank,  and 


April  1984     COMPUTE!      69 


there's  no  such  thing  as  a  static 
string  in  128  mode. 

Chaining  Rules 

Let's  summarize  the  rules  for  well- 
chained  programs: 

•  The  first  program  in  the  chain 
must  be  as  big  or  bigger  than  all 
subsequent  programs. 

•  Any  strings  you  need  to  pass 
from  program  to  program  must  be 
dynamic,  not  static. 

•  If  you  use  DEF  FN  definitions, 
redefine  them  in  each  program. 

•  Arrays  should  be  DIMension- 
ed  only  once,  preferably  in  the  first 
program. 

A  Short  Example 

Let's  write  a  small  series  of  pro- 
grams to  demonstrate  how  this 
works.  Our  first  program  is  called 
MAIN: 

100    IF   N>0    GOTO    200 

The  variable  N  can  only  be 
zero  when  we  start,  so  we  won't 
jump  ahead.  But  if  we  ever  chain 
back  to  this  program,  we'll  take  the 
branch  to  line  200. 

110  PRINT  "SIMPLE  GRADEBOOK  DE 

MO" 
120  DIM  N?(15),M(15) 
130  N=8 

For  simplicity,  we'll  assume 
eight  students.  When  the  program 
runs,  you  can  invent  their  names 
and  numeric  grades. 

140  FOR  J=l  TO  N 
150  PRINT  "STUDENT"; J; 
160  INPUT  "NAME";N5(J) 
170  INPUT  "GRADE";M{J) 
180  NEXT  J 

Running  the  program  at  this 
point  gives  you  data  on  eight  stu- 
dents. If  you  ever  chain  back  to  this 
original  program,  it  will  branch  to 
line  200  (remember  the  IF  test  in 
line  100). 

200  PRINT 

210  PRINT  "DO  YOU  WANT  TO — " 

220  PRINT  "1.  CALCULATE  AVERAG 

E" 
230  PRINT  "2.    CALCULATE  HIGH/L 

OW  SCORES" 
240  PRINT  "3.  QUIT" 
250  PRINT 
260  INPUT  "YOUR  CHOICE  (1-3)"; 

C 
270  ON  C  GOTO  300,310,3  20 
280  GOTO  260 
300  LOAD  "C.AVG",8 
310  LOAD  "C.HIL",8 
320  END 

Note  that  line  300  will  not  run 


into  line  310,  nor  310  into  320.  The 
moment  you  perform  LOAD  within 
a  program,  the  new  program  loads 
and  runs  immediately.  Type  this 
program  and  then  save  it  as  MAIN 
(don't  save  it  under  any  other  file- 
name). Now  type  NEW  and  enter 
program  C.AVG  as  follows: 

100  PRINT 

110  A=0 

120  FOR  J=l  TO  N 

130  A=A+M(J) 

140  NEXT  J 

150  PRINT  "AVERAGE  SCORE, ";N;" 

STUDENTS=";A/N 
160  PRINT 
170  LOAD  "MAIN",  8 

That's  it.  Check  it  closely  and 
save  it  as  C.AVG  (again,  the  file- 
name is  important;  don't  change  it). 
Now  type  NEW  and  enter  program 
C.HIL  as  follows: 

100  PRINT 

110  H=M(1):L=M(1) 

120  FOR  J=l  TO  N 

X30  IF  H<M(J)  THEN  H=M(J) 

140  IF  L>M(J)  THEN  L=M(J) 

150  NEXT  J 

160  PRINT  "HIGH  SCORE: ";H;"  BY 

170  FOR  J=l  TO  N 

180  IF  H=M(J)  THEN  PRINT  N$(J) 

190  NEXT  J 

200  PRINT  "LOW  SCORE  I ";L;"  BY 

210  FOR  J=l  TO  N 

220  IF  L=H(J)  THEN  PRINT  K5(J) 

230  NEXT  J 

240  PRINT 

250  LOAD  "MAIN", 8 

Again,  check  your  typing 
closely  and  save  the  program  as 
C.HIL  to  complete  the  set.  Now 
load  program  MAIN  and  you're 
ready  to  try  out  chaining.  Note  that 
MAIN  is  definitely  larger  than  the 
other  two.  If  there's  any  doubt  in 
your  mind,  add  some  extra  REM 
statements  to  MAIN  to  make  it 
bigger. 

Side  Effects 

We  mentioned  earlier  that  the  act  of 
chaining  causes  certain  things  to 
happen.  FOR-NEXT  loops  are 
scrapped,  subroutine  RETURNS  are 
canceled,  and  the  DATA  pointer  is 
RESTOREd.  That  makes  sense:  You 
can't  RETURN  to  a  program  that 
has  disappeared,  for  example.  And 
occasionally,  these  side  effects  can 
be  useful.  For  instance,  can  a  pro- 
gram ever  chain  to  itself?  The  an- 
swer is  yes,  but  at  first  it's  hard  to 
see  why  you'd  want  to  do  so. 
What's  the  point  of  loading  a  pro- 
gram that's  already  there?  The  an- 
swer lies  in  these  side  effects. 


Sometimes  a  program  gets 
stuck  deep  in  a  subroutine  and  can't 
find  its  way  out.  With  good  pro- 
gramming, this  should  never  hap- 
pen. All  subroutines  should 
RETURN  neatly,  and  if  there's  an 
error  or  similar  anomaly,  the  infor- 
mation should  be  logged  into  a  flag 
and  detected  at  the  appropriate  pro- 
gram level.  It's  easy  to  give  that  sort 
of  advice — but  sometimes  a  pro- 
gram is  deep  within  several  nested 
levels  of  subroutines  when  the  user 
commands,  "Forget  all  this  and 
take  me  back  to  the  menu."  Sensi- 
ble programmers  know  that  you 
can't  jump  direcdy  out  of  these  sub- 
routines back  to  the  main  menu, 
and  it's  a  long,  long  trail  to  back- 
track the  whole  way. 

In  case  of  emergency,  you  can 
chain  the  program  to  itself.  As  it 
loads  itself  back  in,  it  shakes  off  all 
the  FOR-NEXT  loops  and  subrou- 
tine levels  and  surfaces  cleanly — 
with  all  variables  in  place — at  the 
first  statement.  Just  to  show  it  can 
be  done,  we'll  write  a  dreadful  pro- 
gram that  does  just  that.  Please 
don't  write  programs  this  way:  It's 
here  just  to  illustrate  a  point.  Re- 
member to  type  NEW  before  enter- 
ing this  program. 

100  IF  N>0  GOTO  130 

110  PRINT  "NAME  LIST" 

120  DIM  N$(50) 

130  PRINT 

140  PRINT  "DO  YOU  WANT  TO  — " 

150  PRINT  "  1.  ENTER  NAMES" 

160  PRINT  "  2.  LIST  NAMES" 

170  PRINT  "  3.  QUIT" 

180    INPUT    "YOUR    CHOICE"rC 

190  ON  C  GOSUB  210,310,350 

200  GOTO  130 

210  PRINT  "ENTER  EACH  NAME" 

220  PRINT  "FOLLOWED  BY  AN  '*' 

CHARACTER" 
2  30  PRINT  "TO  END  ENTRY" 
240  GOSUB  260 
250  GOTO  240 
260  INPUT  N$ 
270  IF  NS="*"  OR  N=50  THEN  LOA 

D  "DEMO", 8 
280  N»N+1 
290  N?(N)=N$ 
300  RETURN 
310  FOR  J=l  TO  N 
320  PRINT  N$(J) 
330  NEXT  J 
340  RETURN 
350  END 

Check  the  program  and  save  it 
with  the  filename  DEMO;  be  sure 
to  use  that  filename,  since  the  pro- 
gram uses  it  to  load  itself. 

DEMO  is  a  program  turned 
bad,  and  you  should  try  not  to  get 
yourself  into  a  similar  problem.  By 
the  time  this  program  reaches  line 


70     COMPUTEI      April  1986 


210,  it's  in  a  subroutine;  at  line  260, 
it's  nested  within  a  second  subrou- 
tine. When  line  270  discovers  that 
the  user  wants  to  exit,  the  poor 
programmer  doesn't  know  how  to 
get  out,  GOTO  130  would  be  a  very 
bad  solution:  Jumping  out  of  the 
routine  with  GOTO  instead  of  RE- 
TURN leaves  unprocessed  subrou- 
tine information  on  the  computer's 
stack  (which  can  eventually  cause 
an  OUT  OF  MEMORY  error).  What 
to  do? 

The  second-best  solution 
(shown  here)  is  to  clean  up  the 
program  with  a  chain  to  itself.  The 
best  solution  is  not  to  get  yourself 
into  this  kind  of  mess  in  the  first 
place. 

Chaining  can  be  a  useful  and 
powerful  technique.  There  are 
some  rules  to  remember — especial- 
ly that  of  making  sure  the  first  pro- 
gram is  the  biggest — but  in  general 
it  works  quite  well.  Don't  confuse 
chaining  with  loading,  where  one 
program  loads  and  starts  another. 
In  this  case,  there's  no  passing  of 
variables;  the  new  program  starts 
clean.  We'll  talk  about  loading  in 
next  month's  installment.  @ 


CONVERSE  WITH 
YOUR  COMPUTER 


AT  USTI  A  FULi  IMPLEMENTATION  Ol  the  Qnginsl  EUZA  program 

IS  now  aval  labia  to  run  on  your  persor^al  compjier! 

Cre«led  &t  MIT  in  1966,  ELfZA  hai  become  the  world's  most 

celebrBte<)  artificial  intftlligence  demonslralion  program.  ELIZA  is  a 

non-dir«ctive  psycholheraplsl  who  analyzes  each  sialemenl  as  you 

lype  i1  m  and  th^n  mpands  with  her  own  comment  or  question  —and 

hei  remarks  are  often  amazingly  appropriate! 

Designed  10  run  on  a  large  mainlrame,  EUZA  has  never  before  been 

available  to  personal  computer  u$er^  eicept  in  greatly  stnppeddown 

versions  lacking  the  sophistication  which  made  the  original  program 

sola&cinaimg 

Now,  our  new  persor^al  computer  version  possessing  the  FULL  power 

and  range  Of  exprassion  of  Ihe  original  is  being  offered  al  tlif 

inlroduclory  pnce  o!  only  $^5,  And  to  lei  you  find  out  how  stie  does  it 

(or  leach  her  to  do  rrore)  we  have  included  the  complete  SOURCE 

PROGRAM  (written  in  BASIC)  at  no  e^tra  cost. 

Order  your  copy  cf  ELIZA  today  and  you  II  never  again  wonder  how  to 

respond  whan  you  hear  someone  say,  "Oikay,  let's  see  wtiat  this 

computer  of  yours  can  actually  do*" 

READ  WHAT  THE  EXPERTS  SAY  ABOUT  OUR  VERSION  OF  ELiZA: 
"Much  more  than  a  mere  game.  You'll  be  impressed  with  ELIZA,.,  A 
convrnci  ng  demonstraiion  of  Arliticial  Intel  ligence." 

-PC  mGAZINE 
"Deiigt^tfui  entertainment..  An  Idieal  medium  tor  showing  oil  your 
system,'  -MiCROCOMPUTfNQ  KtAGAZlUE 

■'ELIZA isari  astounding  piece  of  software  ..Afascinaling  programto 
use  and  study."  -BARONS  MiCROCOMPUTER  REPORTS 

"ELIZA  is  a  great  way  to  introduce  your  Iriendslo  computers. ..A  very 
funny  party  game."  -PETER  A  McWLUAMS 

■'ELIZA  is  an  exceptional  program,  one  thafs  fun  to  use.  shows  off 
your  machine,  and  has  great  historical  interest " 

-POPULAR  COMPUTING  MAGAHNE 
'Thisversion  of  ELIZA  is  the  best  we  have  seen  Asa  party  game,  it  Is 
unmatched.-  -HOME  APPLICATIONS  FOR  THE  C-64 

ELIZA  IS  AVAILABLE  IN  THE  FOLLOWING  FORMATS; 

*  IBM  PC,  PC|r.,  PC'XT  and  all  comoatibles. 

•  All  Apple  II  computers  (it.  II  Plus.  He.  lie) 

•  Apple  Macintosh  (Microsoft  BASIC  required} 

*  Commodore  64  (soecify  disk  or  cassette; 

■  SV*  inch  or6  inch  disk  lor  all  CP/M  systems 
All  versions  are  S4S  and  include  a  six  page  users  manual. 
Please  add  S?  00  shipping  and  handling  to  all  orders 
(Calitornia  residents  please  add  E'^%  saies  tax) 

ARTIFICIAL  INTELLIGENCE  RESEARCH  GROUP 

921  North  La  Jalla  Avenue.  Dept,  M 

LosAnget&s.  CA900d€ 

(2t3)656-736fl    (213)654-22H 

^;IC.  VISA  and  checlcs  accepted 


Adding 

System  Power 

To  ST  BASIC 


Part  1 


Kevin  Mykytyn,  EditorJa!  Programmer 


Atari  ST  BASIC  lacks  commands  for 
certain  operations  such  as  reading  the 
mouse  pointer,  but  it's  possible  to  fill 
in  these  gaps  by  calling  system  rou- 
tines with  the  VDISYS  command.  In 
Part  I  of  this  series,  we'll  examine  the 
basics  of  calling  VDI  routines  from 
BASIC  and  demonstrate  a  useful 
graphics  routine.  Part  2  will  show 
how  to  read  the  mouse  pointer  with 
VDISYS  and  present  a  program  for 
creating  your  own  custom  mouse 
pointers. 


If  you  own  an  Atari  ST,  you've 
probably  heard  at  least  two  of  the 
three-letter  acronyms  associated 
with  the  computer:  TOS  stands  for 
Tramiel  Operating  System — a  huge 
system  program  which,  at  the  most 
fundamental  level,  allows  the  com- 
puter to  function.  And  GEM  stands 
for  Graphics  Environment  Manag- 
er, a  separate  system  program  that 
handles  the  ST's  graphics-oriented 
desktop.  GEM,  in  turn,  consists  of 
three  separate  parts:  the  VDI  (Virtu- 


al Device  Interface),  a  low-level 
graphics  interface  that  also  handles 
mouse  input;  the  AES  (Application 
Environment  Services),  which  uses 
the  VDI  to  manage  data  and  the 
desktop;  and  GEMDOS,  which 
handles  disk  operations. 

Interesting,  you  may  say,  but 
what's  the  point?  For  most  BASIC 
programming,  you  needn't  worry 
about  TOS,  GEM,  VDI,  AES,  or 
GEMDOS,  any  more  than  the  aver- 
age driver  needs  to  know  exactly 
how  an  auto  engine  works.  These 
system  programs  are  the  invisible 
machinery  that  makes  everything 
else  happen. 

However,  as  you  may  have 
discovered,  ST  BASIC  lacks  com- 
mands to  do  certain  tasks,  such  as 
drawing  a  circle  or  sensing  the  posi- 
tion of  the  mouse  pointer.  That's 
what  makes  one  of  these  strange- 
sounding  programs — the  VDI — an 
invaluable  asset  for  the  BASIC  pro- 
grammer. The  VDI  holds  a  treasure 
trove  of  system  routines  which  can 
do  everything  from  drawing  boxes 


April  1986     COMPUTEI      71 


and  circles  to  rotating  character 
fonts  and  manipulating  raster 
blocks.  With  ST  BASIC'S  VDISYS 
command,  you  can  access  all  of 
these  routines — which  compen- 
sates in  large  part  for  the  missing 
ST  BASIC  commands, 

VDISYS  To  The  Rescue 

In  simplest  terms,  the  VDISYS  com- 
mand calls  (activates)  a  VDI  system 
routine  to  do  a  task  that  would  be 
difficult  or  impossible  to  perform  in 
BASIC.  Furthermore,  these  system 
routines  execute  very  quickly — a 
real  plus  when  you're  working  with 
graphics.  Whether  executed  in  im- 
mediate or  program  mode,  the 
VDISYS  command  always  takes 
this  general  form: 

VDISYSM 

In  this  example  a  simple  variable 
named  .r  appears  in  the  parenthe- 
ses. It  doesn't  matter  what  value 
this  variable  represents;  it's  a  dum- 
my parameter,  needed  only  to  satis- 
fy the  syntax  of  the  command. 
Don't  try  to  enter  this  command 
yet — if  you  do,  there's  a  good 
chance  you'll  see  the  mushroom 
cloud  symbol  that  signals  a  system 
crash.  A  certain  amount  of  prepara- 
tion is  always  needed  before  you 
execute  VDISYS. 

When  a  VDISYS  command  is 
executed,  control  passes  from  your 
BASIC  program  to  an  internal  VDI 
handler,  which  eventually  passes 
control  to  the  VDI  routine  itself.  But 
first  the  VDI  handler  looks  at  cer- 
tain sections  of  the  computer's 
memory,  called  parameter  blocks. 
The  data  in  the  parameter  blocks 
tells  the  handler  which  particular 
VDI  routine  you  want  to  execute. 
There's  also  other  information  that 
the  VDI  routine  itself  will  need.  If 
you  don't  supply  all  the  infor- 
mation needed  to  call  a  routine,  the 
VDI  handler  can't  carry  out  your 
request. 

VDI  Opcodes 

The  first  thing  you  must  tell  the 
computer  is  which  VDI  routine  you 
want  to  call.  Each  VDI  routine  is 
identified  by  a  unique  opcode  num- 
ber. For  instance,  the  VDI  routine 
used  in  the  program  below  has  the 
opcode  11.  This  is  a  generalized 
shape-drawing  routine.  (There  are 
hundreds  of  VDI  opcodes  and  asso- 
ciated parameters,  so  we  don't  have 


room  in  this  article  for  a  listing.  But 
you  can  find  a  42-page  list  of  select- 
ed VDI  opcodes  in  COMPUTEl's  ST 
Programmer's  Guide,  available  from 
COMPUTE!  Publications.) 

Once  you  know  a  VDI  rou- 
tine's opcode  number,  that  value 
must  be  POKEd  into  a  special  place 
in  memory  defined  by  the  reserved 
variable  CONTRL,  Try  typing 
PRINT  CONTRL  in  immediate 
mode;  even  if  you  haven't  given 
this  variable  any  value,  the  com- 
puter prints  a  number  on  the 
screen.  ST  BASIC  always  prede- 
fines CONTRL  along  with  several 
similar  variables.  The  CONTRL 
variable  represents  an  actual  loca- 
tion in  memory. 

Since  the  system  automatically 
substitutes  this  location  for  the  key- 
word CONTRL,  you  don't  have  to 
memorize  a  series  of  numbers  or 
worry  about  where  this  parameter 
block  really  resides.  To  select  VDI 
routine  11,  for  instance,  you  simply 
execute  POKE  CONTRL,  11. 

How  Many  Comers? 

Once  you've  POKEd  the  VDI  op- 
code 11  into  CONTRL,  you  must 
tell  the  computer  how  many  verti- 
ces (corners)  are  needed  to  define 
the  graphic  shape  you  want  to 
draw.  Regular  geometric  shapes  re- 
quire different  numbers  of  vertices. 
A  triangle,  for  instance,  requires  a 
minimum  of  three  comers.  A  rect- 
angle, on  the  other  hand,  can  be 
defined  with  only  two — the  upper 
left  comer  and  the  lower  right  one. 
Of  course,  a  rectangle  has  a  total  of 
four  corners,  but  the  total  is  not 
what  we're  looking  for.  The  com- 
puter cares  only  about  the  minimum 
number  of  vertices  it  takes  to  draw 
the  shape  in  question.  After  you 
determine  how  many  vertices  are 
needed,  that  value  is  POKEd  into 
the  location  defined  by  CONTRL 
+  2.  For  example,  in  line  30  of  the 
program  below,  the  statement 
POKE  CONTRL +  2,2  tells  the  com- 
puter that  you  want  to  draw  a  rect- 
angle (defined  by  only  two 
corners). 

Notice  that  the  second  POKE  is 
directed  two  bytes  higher  in  memo- 
ry than  the  first.  Now  you  can  see 
the  parameter  block  begin  to  take 
shape:  It's  simply  a  segment  of 
memory  where  you  place  a  collec- 
tion of  values.  The  first  byte  of  the 


parameter  block  is  defined  by 
CONTRL,  and  the  remaining  loca- 
tions are  defined  as  even-numbered 
offsets  above  that  starting  spot 
(CONTRL +2,  CONTRL +4,  and 
so  forth). 

The  particular  routine  used  in 
this  program  (termed  a  generalized 
drawing  primitive)  contains  several 
subroutines  (also  called  subfunc- 
tion$),  each  of  which  performs  a 
different  drawing  task.  To  choose  a 
subroutine,  you  must  POKE  its 
identifying  number  (called  the 
primitive  ID)  into  the  location  de- 
fined by  CONTRL -I- 10.  In  this  case 
we  want  to  use  the  bar-drawing 
subroutine,  whose  primitive  ID 
happens  to  be  1 .  So  in  line  40  of  the 
program,  we  POKE  CONTRL  + 10,1. 

PTSIN  And  INTIN 

The  next  step  is  to  tell  the  VDI 
handler  where  to  place  the  graphic 
shape.  Recall  that  you  told  the  com- 
puter earlier  how  many  vertices  it 
takes  to  define  the  shape.  To  posi- 
tion the  shape  on  the  screen,  you 
must  now  tell  VDI  where  to  put 
each  vertex.  This  is  done  by  POKE- 
ing  horizontal  (X)  and  vertical  (Y) 
coordinate  values  into  a  second  pa- 
rameter block  area. 

The  second  parameter  block 
begins  at  a  memory  location  de- 
fined by  the  reserved  variable 
PTSIN  {PoitUs  Input).  Again,  you 
don't  need  to  know  the  actual 
memory  locations  involved,  since 
the  computer  keeps  track  of  them 
for  you.  All  you  need  to  do  is  POKE 
the  correct  numbers  into  PTSIN 
(and  even-numbered  adjacent  loca- 
tions, in  some  cases). 

Lines  50-80  of  the  example 
program  perform  this  job  by  POKE- 
ing  the  bar's  X  and  Y  coordinates 
into  memory.  The  X  coordinate  of 
the  first  point  is  POKEd  into 
PTSIN;  the  first  point's  Y  coordi- 
nate goes  into  PTSIN -I- 2;  the  X  co- 
ordinate of  the  second  point  goes 
into  PTSIN -H  4,  and  so  on.  Keep  in 
mind  that  you  must  supply  a  pair  of 
coordinate  values  for  every  point 
that  you  defined  in  CONTRL  +  2. 

A  third  parameter  block,  be- 
ginning at  the  address  defined  by 
the  reserved  variable  INTIN,  is 
used  to  pass  attribute  values,  if  any 
are  required  by  the  current  subrou- 
tine. The  term  attribute  is  a  catch-all 
that  can  include  many  different  pa- 


72     COMPUTEI     April  1986 


rameters — colors,  rotation  values,  a 
style  index,  or  whatever — depend- 
ing on  which  subroutine  is  called. 
Since  the  subroutine  used  in  this 
program  requires  no  attributes,  we 
don't  need  to  POKE  any  values  in 
this  segment  of  memory.  As  a  sig- 
nal to  the  VDI  handler  that  no  attri- 
butes ■  are  involved,  we  must  also 
POKE  a  zero  into  location 
CONTRL  +  6;  this  location  tells  the 
system  how- many  attribute  values 
to  read  from  the  INTIN  parameter 
block. 

After  all  of  the  required  values 
have  been  POKEd  into  memory, 
line  90  of  the  example  program  exe- 
cutes the  VDISYS  command,  which 
calls  the  VDI  routine  and  draws  a 
bar  on  the  screen.  This  may  seem 
like  an  enormous  amount  of  prepa- 
ration for  such  a  simple  task  (which 
some  other  computers  can  do  with 
a  single  BASIC  statement).  On  the 
other  hand,  it's  better  than  not  be- 
ing able  to  draw  a  bar  at  all.  You  can 
cut  down  on  the  bulkiness  of  the 
code  by  writing  setup  subroutines 
that  contain  all  the  necessary 
overhead. 


Bar  Drawing 

10  fullw  2:dearw  2:color  2,2,2 

20  poke  contrl,ll  'VDI  opcode 

30  poke  contrl+2,2  'number  of  vertices 

35  poke  contrl-)-6,0  'number  of  attributes 

40  poke  contrl-l-10,1  'primitive  ID  of  bar 

command 
50  poke  ptsin,50  'x  coordinate  of  top  left 

corner 
60  poke  ptsin-F2,50  'y  coordinate  of  lop 

left  comer 
70  poke  ptsin-l-4,100  'x  coordinate  of 

bottom  right  comer 
80  poke  pt8in+5,100  'y  coordinate  of 

bottom  right  comer 
90  vdisys  (0) 

General  Drawing  Routine 

Though  every  VDI  call  requires 
several  preparatory  steps,  each  in- 
dividual step  is  easy  to  perform.  As 
should  be  apparent  by  now,  there's 
nothing  mystical  about  the  pro- 
cess— all  you  need  to  do  is  leave  the 
right  pieces  of  information  in  places 
where  the  computer  can  find  them, 
then  signal  that  you  want  the  job 
done.  The  real  work  is  done  by  the 
system  itself. 

Though  the  general  procedure 
is  the  same  in  every  case,  each  VDI 
routine  requires  different  types  and 
amounts  of  information.  One  of  the 


most  useful  VDI  routines  is  the  gen- 
eralized drawing  primitive  used  in 
the  example  program.  Table  1  sum- 
marizes the  POKEs  you  need  to  call 

this  routine. 


Table  1:  Generalized 
Drawing  Primitive 

POKE  CONTRL,  11 

POKE  CONTRL+2,  number  of  vertices 
POKE  CONTRL-l-6,  number  of  attributes 
POKE  CONTRL +  10,  subfunction  number 
(primitive  ID) 

Again,  CONTRL  receives  the 
opcode  number  of  the  VDI  routine; 
CONTRL -I- 2  the  number  of  verti- 
ces in  the  desired  shape; 
CONTRL+6  the  number  of  attri- 
butes (if  any);  and  CONTRL +10 
the  primitive  ID  for  the  subroutine 
you  want.  This  particular  VDI  rou- 
tine is  extremely  versatile  and  can 
draw  pie-shaped  segments,  ellip- 
ses, filled  or  empty  rounded  rectan- 
gles, and  other  graphic  images, 
including  text.  Table  2  lists  the 
primitive  IDs  for  each  of  this  rou- 
tine's subroutines. 

Table  2:  Drawing 
Subroutines 


Primitive  ID 

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 


Subroutine 

bar 

dide 

arc 

pie 

ellipse 
elliptical  arc 
elliptical  pie 
rounded  rectangle 
filled  rounded  rectangle 
justified  graphics  text 


To  select  a  specific  subroutine, 
find  its  primitive  ID  in  the  leftmost 
column  of  Table  2,  then  POKE  that 
value  into  location  CONTRL+10. 
Table  3  summarizes  the  POKEs 
needed  to  set  up  the  second  and 
third  parameter  blocks  (PTSIN  and 
INTIN).  Remember,  the  value 
POKEd  into  CONTRL+2  (number 
of  vertices)  determines  how  many 
X-Y  coordinate  pairs  you  must 
POKE  into  the  PTSIN  parameter 
block.  The  X  and  Y  coordinates  for 
the  first  vertex  go  into  PTSIN  and 
PTSIN +  2;  the  second  X-Y  coordi- 
nate pair  goes  into  PTSIN +4  and 
PTSIN +6,  and  so  forth. 


Table  3:  PTSIN  And  INTIN 
Parameter  Blocks 

POKE  PTSIN,  X  coordinate  of  firat  vertex 
(rectangle) 
X  coordinate  of  center 
(circle,  ellipse) 
POKE  PTSIN -(-2,  Y  coordinate  of  first 
vertex  (rectangle) 
Y  coordinate  of  center 
(circle,  ellipse) 
POKE  PTSIN +  4,  X  coordinate  of  second 
vertex  (rectangle) 
X  radius  for  ellipse 
POKE  PTSIN +  6,  Y  coordinate  of  second 

vertex  (rectangle) 
POKE  PTSIN -1-8,  radius  (circle  only) 
POKE  PTSIN -!- 12,  radius  (circular  arc  or 
pie  only) 

POKE  INTIN,  start  angle  for  arcs  and  pies 
POKE  INTIN -I- 2,  end  angle  for  arcs  and 
pies 

To  draw  a  circle,  ellipse,  arc,  or 
pie-shape  segment,  POKE  X  and  Y 
coordinates  for  the  shape's  center 
point  into  PTSIN  and  PTSIN+2.  A 
simple  circle  requires  a  radius  value 
in  PTSIN +  8;  arcs  and  pie  shapes 
built  from  a  part  of  a  circle  require  a 
radius  value  in  PTSIN +  12.  To 
draw  an  ellipse,  or  an  arc  or  pie 
shape  built  from  part  of  an  ellipse, 
POKE  the  shape's  X  radius  in 
PTSIN +  4  and  its  Y  radius  into 
PTSIN +  6. 

Most  of  these  subfunctions 
don't  require  any  attribute  values. 
To  draw  arcs  or  pie  shapes,  howev- 
er, you  must  POKE  two  attribute 
values  into  INTIN  and  INTIN +2  to 
define  starting  and  ending  angles, 
respectively.  Since  the  angle  values 
are  specified  in  tenths  of  a  degree, 
not  in  whole  degrees,  these  param- 
eters can  range  from  0-3600.  The 
starting  angle  specifies  where  you 
want  the  rounded  portion  of  the  arc 
or  pie  segment  to  begin,  and  the 
ending  angle  shows  where  that 
portion  should  stop.  The  statement 
POKE  CONTRL +6,2  signals  that 
you're  passing  two  attribute  values 
to  the  VDI. 

As  you'll  learn  from  experi- 
menting with  these  routines, 
VDISYS  opens  the  gateway  to  a 
wide  variety  of  graphics  capabili- 
ties. Once  you  become  familiar 
with  the  setup  process,  you'll  prob- 
ably find  yourself  using  VDISYS 
more  and  more.  In  part  2  of  this 
article,  we'll  look  at  VDISYS  in 
more  detaU,  and  present  a  program 
that  lets  you  create  a  custom  shape 
for  your  ST's  mouse  pointer.        © 


April  1986    COMPUTE!     73 


Mousify  Your  Applesoft  Programs 

Part  2 


Part  I  of  this  series  (COMPUTE!, 
March  1985)  provided  an  Applesoft 
program  allowing  an  AppleMouse, 
joystick,  or  game  paddles  to  point  to 
text  on  the  screen.  This  month.  Part  2 
demonstrates  more  advanced  mouse 
operations  such  as  defining  a  text  area 
and  deleting,  copying,  or  restoring  the 
defined  text.  The  example  programs 
run  with  either  DOS  3.3  or  ProDOS. 
Although  a  mouse  works  best,  you  can 
substitute  a  joystick  or  game  paddles. 


Mouse-controlled  programs  must 
perform  a  number  of  functions  in 
addition  to  simple  pointing.  The 
programs  following  this  article  pro- 
vide several  of  these  important 
capabilities: 

•  Define  Text.  Use  the  mouse  to 
highlight  a  block  of  text,  which  can 
then  be  copied  or  deleted  (typical 
word  processing  operations), 

•  Copy  Text.  Copy  highlighted  text 
to  a  buffer  without  deleting  it  from 
the  screen, 

•  Delete  Text.  Delete  highlighted 
text  and  save  it  in  a  buffer. 

•  Insert  Text.  Restore  previously 
copied  or  deleted  text  at  a  new 
point  on  the  screen. 

•  Cancel.  Undo  highlighting  if  you 
wish  to  abort  a  copy  or  delete 
operation. 

'Delete  a  Character.  Delete  the  char- 
acter under  the  cursor. 

•  Delete  to  End  of  Line.  Delete  text 
from  the  cursor  to  the  end  of  the 
line. 

•  Find  Mouse.  Locate  the  mouse 
interface. 

Getting  Started 

Enter  and  save  Program  1,  which  is 
an  expanded  and  modified  version 


Lee  Swobodo 


of  the  program  published  in  Part  1 . 
It  works  in  either  DOS  3.3  or  Pro- 
DOS;   if  you're  using  ProDOS, 
change  line  115  as  shown  here: 
115  fflMEM;  36352 

Program  2  creates  a  binary  file 
named  MOUSEY  which  contains 
machine  language  routines  used  by 
Program  1.  The  MOUSEY  file  creat- 
ed by  Program  2  must  be  present  on 
disk  whenever  you  run  Program  1. 
(It's  not  necessary  to  have  Program 
2  itself  on  the  disk  with  Program  1, 
just  a  copy  of  the  binary  file  created 
by  Program  2.)  Be  sure  to  save  a 
copy  of  Program  2  so  you'll  be  able 
to  create  new  copies  of  MOUSEY 
whenever  needed. 

Program  3  creates  a  short  text 
file  which  we'll  use  in  the  following 
example.  If  you're  using  a  joystick 
instead  of  a  mouse,  refer  to  the 
additional  instructions  under  "Joy- 
stick Modifications"  below.  When 
you  are  ready  to  proceed,  your  disk 
should  contain  a  copy  of  Program 
1,  a  file  named  MOUSEY  (created 
by  Program  2),  and  a  file  named 
TEXT  (created  by  Program  3). 

When  you  run  Program  1,  the 
screen  looks  like  this: 

ENTER  INFORMATION 

FIRST  NAME    ....  COMPUTE! 

LAST  NAME   READER  SERVICE 

ADDRESS P.O.  BOX  50950 

CITY DES  MOINES 

STATE    lA  50950 

ZIP    

TELEPHONE   1-800-346-6767 

COPY    DELETE    INSERT    CANCEL 
ERASE     QUIT    DONE    HELP 

This  screen  simulates  what  you 
might  see  in  a  simple  address  book 
program.  We  have  introduced  an 
intentional  error  by  putting  the  zip 
code  entry  on  the  same  line  as  the 


state  entry.  Let's  correct  the  error 
for  a  quick  demonstration  of  a  few 
mouse  features.  Move  the  mouse 
cursor  to  the  first  number  in  the  zip 
code,  then  press  and  hold  the 
mouse  button  down  while  moving 
the  mouse  to  the  right.  The  com- 
puter highlights  the  zip  code  in  in- 
verse video.  Keep  moving  the 
mouse  until  all  the  numbers  in  the 
zip  code  are  highlighted,  then  re- 
lease the  mouse  button. 

At  this  point,  the  highlighted 
text  area  has  been  defined.  Now 
move  the  mouse  pointer  to  the 
word  DELETE  in  the  strip  menu  at 
the  bottom  of  the  screen  and  press 
the  mouse  button.  The  computer 
erases  the  highlighted  zip  code 
from  the  screen.  Don't  worry — the 
information  hasn't  been  lost. 
Whenever  you  delete  text,  the  pro- 
gram stores  it  in  a  temporary  mem- 
ory buffer. 

Now  let's  put  the  zip  code  data 
back  where  it  belongs.  Move  the 
mouse  pointer  to  the  beginning  of 
the  next  screen  tine  (directly  under 
the  I  in  lA),  then  press  the  mouse 
button.  The  computer  moves  the 
cursor  to  that  line.  Next,  move  the 
mouse  pointer  to  the  word  INSERT 
and  press  the  button  again.  The  zip 
code  data  reappears  in  the  desired 
screen  area. 

Mouse  Editing  Functions 

Here  is  a  more  detailed  description 
of  the  mouse-editing  functions 
demonstrated  in  Program  1: 

Mouse  pointer  and  text  cursor. 

The  rapidly  blinking  caret  symbol 
(")  is  the  mouse  pointer,  which  you 
can  move  around  the  text  screen 
with  the  mouse.  When  the  pointer 
passes  over  a  character,  the  charac- 
ter blinks  rapidly.  The  flashing  rect- 


74     COMPUni     April  1986 


angle  shows  the  position  of  the  text 
cursor.  When  the  cursor  passes  over 
a  character,  the  character  changes 
temporarily  to  flashing  uppercase. 
There  are  three  different  ways  to 
move  the  text  cursor: 

•  Move  the  mouse  pointer  to  the 
spot  where  you  want  the  text  cursor 
to  go,  then  press  the  mouse  button. 

•  Use  the  arrow  keys  as  you  would 
in  Applesoft  BASIC  (the  Apple  11 
uses  CTRL-J  and  CTRL-K  to  move 
up  and  down,  respectively). 

•  Press  RETURN  to  move  the  cursor 
to  the  beginning  of  the  next  screen 
line.  If  the  cursor  is  already  on  the 
bottom  line,  it  moves  to  the  top. 
Pressing  RETURN  does  not  erase 
the  text  to  the  right  of  the  cursor. 

Enter  text.  Text  is  entered  as  usual, 
by  pressing  any  letter,  number,  or 
punctuation  key.  Lowercase  letters 
are  automatically  converted  to 
uppercase. 

Define  text.  Before  text  can  be  cop- 
ied or  deleted,  you  must  define  it. 
Move  the  mouse  pointer  to  the 
upper-left  comer  of  the  text  you 
want  to  define,  then  press  and  hold 
the  mouse  button.  While  pressing 
the  button  down,  drag  the  mouse 
pointer  to  the  lower-right  corner  of 
the  desired  area.  The  computer 
marks  the  defined  area  by  high- 
lighting every  character  with  in- 
verse video,  Now  release  the 
button:  The  area  is  defined,  aiid 
you  may  proceed  to  the  Cancel, 
Delete,  or  Copy  options. 

Delete  text.  To  delete  a  text  area 
that  you  previously  defined,  move 
the  mouse  pointer  to  DELETE  in 
the  strip  menu  at  the  bottom  of  the 
text  screen,  then  press  the  button. 
The  computer  blanks  out  the  high- 
lighted portion  of  the  screen  and 
stores  the  first  200  characters  of  the 
defined  area  in  a  temporary  buffer 
for  later  use. 

Copy  text.  To  copy  a  text  area  that 
you  have  previously  defined,  move 
the  pointer  to  COPY  in  the  strip 
menu,  then  press  the  button.  The 
computer  stores  the  first  200  char- 
acters of  the  defined  area  in  a  tem- 
porary buffer.  Unlike  the  Delete 
operation.  Copy  does  not  blank  out 
the  defined  area. 

Insert  text,  To  insert  text  that  you 
previously  copied  or  deleted,  move 


the  pointer  to  the  spot  where  you 
want  to  insert  text,  then  press  the 
button  to  locate  the  cursor  at  that 
spot.  Now  move  the  pointer  to  IN- 
SERT in  the  strip  menu  and  press 
the  button  again.  The  computer  in- 
serts the  text,  using  the  text  cursor 
position  as  a  starting  point.  Note 
that  the  inserted  text  overwrites 
whatever  else  was  in  the  affected 
area.  You  can  insert  only  the  most 
recently  copied  or  deleted  text. 

Cancel.  If  you  define  a  block  of  text 
and  then  decide  not  to  copy  or  de- 
lete it,  move  the  pointer  to  CAN- 
CEL in  the  strip  menu  and  press  the 
button.  The  highlighting  disap- 
pears, and  the  text  is  no  longer 
defined. 

Editing  keys.  Press  CTRL-D  (or 
DELETE  on  the  Apple  lie  and  He)  to 
delete  the  character  under  the  cur- 
sor. The  remaining  characters  in 
that  line  move  one  space  to  the  left. 
You  can  also  press  CTRL-X  to  de- 
lete every  character  from  the  pre- 
sent cursor  position  to  the  end  of 
the  line. 

Try  out  the  various  editing 
functions.  When  you've  tried  ev- 
erything, move  the  mouse  pointer 
to  DONE  in  the  strip  menu  and 
press  the  button.  The  demonstra- 
tion program  ends  with  a  routine 
that  reads  the  current  data  directly 
from  the  video  screen. 

Since  the  Copy,  Delete,  Insert, 
and  Cancel  commands  are  written 
in  BASIC,  they  may  take  a  second 
or  two  to  complete  if  you  define  a 
large  text  area.  Though  BASIC  can't 
perform  such  operations  very  fast, 
these  routines  are  far  easier  for  you 
to  customize  than  if  they  had  been 
written  in  machine  language.  If  the 
slowness  bothers  you,  just  imagine 
how  long  it  would  take  to  delete  the 
same  amount  of  text  with  your 
trusty  pink  eraser. 

Joystick  Modifications 

If  you  don't  own  a  mouse,  you  can 
substitute  a  joystick.  Delete  lines 
120,  130,  10001-10090,  10200, 
20220,  and  44000-44050  from  Pro- 
gram 1;  then  add  or  modify  the 
lines  in  Program  4.  The  joystick 
moves  the  mouse  pointer  around 
the  screen,  and  the  joystick  button 
substitutes  for  the  mouse  button. 

Since  the  joystick  was  de- 
signed for  a  different  purpose,  its 


performance  doesn't  equal  that  of  a 
mouse.  But  it  costs  a  lot  less. 

How  Ttie  Program  Worlcs 

The  machine  language  routine  con- 
tained in  the  MOUSEY  file  simply 
highlights  text  by  changing  every 
character  between  the  text  cursor 
and  mouse  pointer  to  inverse  video. 
All  the  other  functions  are  carried 
out  by  the  BASIC  routines  in  Pro- 
gram 1. 

After  you  define  a  block  of  text, 
lines  35000-44050  act  on  the  high- 
lighted area.  The  Copy  routine 
(36000-36180)  converts  each  char- 
acter in  the  defined  area  to  normal 
video  and  stores  it  in  a  temporary 
text  buffer.  This  buffer  lies  in  loca- 
tions 775-1000  ($307-$3E8),  a  nor- 
mally unused  region. 

The  Delete  routine  (37000- 
37180)  is  similar  to  Copy  and  uses 
the  same  temporary  buffer,  but  re- 
places each  character  in  the  defined 
area  with  a  blank  space. 

The  Insert  routine  (38000- 
38100)  moves  text  from  the  tempo- 
rary buffer  back  to  the  video  screen, 
beginning  at  the  current  location  of 
the  text  cursor. 

Lines  39000-40000  contain  the 
Cancel  routine,  which  aborts  copy 
or  delete  operations.  You  can  also 
cancel  a  definition  by  pressing  any 
key. 

The  routine  at  lines  41000- 
41070  deletes  a  single  character; 
lines  42000-42060  erase  all  or  part 
of  the  current  line. 

Here  are  some  other  useful  en- 
try points  in  the  program  (note  that 
each  of  these  routines  ends  with  a 
GOTO  rather  than  GOSUB): 


Line 

10120 
10300 
10420 
10570 


Purpose 

read  mouse 

position  mouse  pointer 
keyboard  input 
position  cursor 


For  Instructions  on  entering  ttiese  listings, 
please  refer  to  "COMPUTEI's  Guide  to  Typing 
In  Programs"  in  this  issue  of  compute'. 

Program  1:  Advanced 
Mouslfication 


Bl 

115  HIMEM:  37375 

W 

120  EOSUB  44010 

1)7 

130  MI  =  20:  REM  HOUSE  SENSIT 

IVITY 

» 

140  D4  =  CHR*  (4) 

E8 

145  PRINT  DS-BLOAD  MOUSEY" 

BE 

150  REM 

n 

160  REM  READ  DATA  FILE 

!J 

170  REM 

CE    180    PRINT    D*"DPErM   TEXT" 


April  1966     COMPUTEI      75 


32  190  PRINT  D*"READ  TEXT" 

63 

10240  Yl  =  Y0:X1  =  X0 

DC 

10730  POKE  V0,C3 

6D  200  INPUT  NF*,NL*,AD*,CI$,ST* 

78 

10250  POKE  V0,C0 

51 

10740  C0  =  C3 

,2I*,TE« 

11 

10255  IF  C0  <  12B  THEN  POKE  V 

CE 

10750  IF  V0  =  VI  THEN  C2  =  C3 

CD  210  PRINT  D*"CLaSE  TEXT" 

0,C0  +  128 

IC 

10760  XI  =  XI  +  1:  IF  XI  >  39 

97  220  REM 

IB 

10260  C0  =  C2 

THEN  XI  ■=  39 

25  230  REM  DATA  ENTRY  SCREEN 

-2 

10270  BDSUB  10800 

67 

10770  BDTO  10590 

8B  240  REM 

F2 

10280  BDTO  10620 

16 

10780  REM  CALCULATE  V0 

<F  250  HOME 

69 

10290  REM 

6E 

10790  REM  (VIDEO  BUFFER  ADDRE 

K   260  Yl  =  4:X1  =  15:C0  =  160 

■D 

10300  REM  POSITION  MOUSE  PGIN 

S3) 

35  270  INVERSE 

TER 

61 

10800  V0  =  1023  +  12S  *  (Yl  - 

D7  2B0  PRINT  "              ENTER 

:i 

10310  REM 

1)  +  XI 

INFORMATION 

DD 

10315  IF  B0  =  2  AND  Y0  =  23  T 

2B 

10810  IF  Yl  >  8  THEN  V0  =  V0 

2*  2B3  VTAB  23:  PRINT  "       CDF 

HEN  20081 

-  994 

Y   DELETE   INSERT   CANCEL 

Dl 

10320  IF  V0  =  VI  THEN  C2  =  CI 

7F 

10820  IF  Yl  >  16  THEN  V0  =  Va 

" 

i> 

10330  POKE  VI, C2 

-  984 

%   290  VTAB  24:  PRINT  "         E 

s; 

10340  VI  =  1023  +  12B  »  (Y0  - 

BB 

10830  RETURN 

RASE   QUIT   DONE   HELP 

1)  +  X0 

9A 

19999  REM  #20000 

9 

3F 

10350  IF  Y0  >  8  THEN  VI  =  VI 

lA 

20000  REM 

C4  300  NORMAL 

-  9B4 

AE 

20010  REM  STRIP  MENU 

31  310  VTAB  4:  HTAB  1 

9C 

10360  IF  Y0  >  16  THEN  VI  =  VI 

2A 

20020  REM 

F4  320  PRINT  "FIRST  NAME  .  .  " 

-  904 

C2 

20030  PRINT  D»"1N#0" 

Ci  330  PRINT  "LAST  NAME  ..." 

27 

10370  C2  =  PEEK  (VI) 

CB 

20040  IF  X0  >  8  AND  X0  <  14  T 

3C  340  PRINT  "STREET ." 

64 

10380  POKE  VI, 160 

HEN  NF»  =  "":NL»  =  "":A 

Di  350  PRINT  "CITY ■' 

U 

10390  IF  C2  =  160  THEN  POKE  V 

D«  =  "":CI«  =  "":ST*  = 

IF  360  PRINT  "STATE " 

1 ,30 

"":ZI»  »  "":TE«  =  Q 

36  370  PRINT  "ZIP " 

U 
31 
11 
41 
F9 
77 

10400  BDTO  10150 

10410  REM 

10420  REM  KEYBOARD  INPUT 

10430  REM 

10440  C3  =  PEEK  (  -  16384) 

10450  POKE  -  1636B,0 

IF 
73 
7S 

DTO  250 
20050  IF  X0  >  15  AND  X0  <  20 

THEN  HOME  8  END 
20060  IF  X0  >  21  AND  X0  <  26 

THEN  30030 
20070  IF  X0  >  27  AND  X0  <  32 

THEN  20100 

20080  VTAB  1:  HTAB  40:  PRINT 
D4"IN«"S0:  BDTO  10150 

20081  IF  X0  >  6  AND  X0  <  11  T 
HEN  BDSUB  36010:  GOTO  1 
0590 

20082  IF  X0  >  12  AND  X0  <  19 
THEN  GOSUB  37010:  GOTO 
10590 

17  380  PRINT  "TELEPHONE " 

3«  390  VTAB  19:  HTAB  10:  INVERSE 

:  PRINT  "'■";  :     NORMAL 
B!  400  PRINT  "  IS  MOUSE  POINTER" 
3C  410  VTAB  21:  HTAB  14:  INVERSE 

:  PRINT  "  "; :  NORMAL 
38  420  PRINT  "  IS  CURSOR" 
2k  430  VTAB  4 

5E  440  HTAB  15:  PRINT  NF» 
(id  450  HTAB  15;  PRINT  NL* 

DC 
71: 

10455  IF  C3  >  223  THEN  C3  =  C 
3-32:  REM  CONVERT  TO 
UPPER  CASE 

10456  IF  SW  >  0  THEN  BDSUB  39 
010 

71 

HI   460  HTAB  15:  PRINT  AD* 
El  470  HTAB  15:  PRINT  CI* 
Fi  4S0  HTAB  15:  PRINT  ST* 

<3 
63 

10460  IF  C3  >  159  THEN  10710 
10465  IF  C3  =  132  OR  C3  =  225 
THEN  IF  XI  >  14  AND  Yl 

B2 

71  490  HTAB  15:  PRINT  ZI* 

>  3  AND  Yl  <  11  THEN  G 

5!  500  HTAB  15:  PRINT  TE« 

OSUB  41010 

5F 

200B3  IF  X0  >  28  AND  X0  <  35 

73  9999  REM  #10000 

lA 

10466  IF  CZ    =    152  THEN  IF  XI 

THEN  GOSUB  39010:  BDTO 

19  10000  REM 

>  14  AND  Yl  >  3  AND  Yl 

10590 

ri  i  ffitJ^^1      DtTM — 

<  11  THEN  SOSUB  42010 

54 

20084  GOTO  10150 

Ld  11310131  Ktn — 

29  10010  REM  MOUSE  ROUTINES 

CD 

10470  IF  C3  =  141  THEN  XI  =  I 

!7 

20090  REM  HELP  TEXT 

r  1        t    ,^j^i-iyv       r-i.i—  ■kj 

5:Y1  =  Yl  +  1:  IF  Yl  > 

CD 

20100  VTAB  12:  HTAB  1 

to  ivjiozis    Ktn ' — "^ 

37  10040  REM 

10  THEN  Yl  =  4:  REM  RET 

BA 

20110  PRINT  "THE  FLASHING  REF 

M  10050  REM  TURN  MOUSE  "ON" 

URN  KEY 

LEX  C^)  IS  THE  MOUSE" 

«  10060  REM 

59 

10480  IF  C3  =  138  THEN  ¥1  =  Y 

75 

20120  PRINT  "POINTER  AND  THE 

(8  10070  PRINT  D»"PRI»"S0:  PRINT 

1+1:  REM  DOWN  ARROW 

FLASHING  RECTANGLE  IS" 

CHR*  (1) 

C2 

10490  IF  C3  =  139  THEN  Yl  -  Y 

4B 

20130  PRINT  "THE  CURSOR.   TO 

CB  10080  PRINT  D*"PR#0" 

1  -1:  REM  UP  ARROW 

MOVE  THE  CURSOR  TO  THE" 

(9  10090  PRINT  D«"IN#"S0 

BF 

10500  IF  C3  =  149  THEN  XI  =  X 

3i 

20140  PRINT  "ENTRY  YOU  WANT  T 

17  10100  GOTO  10590 

1+1:  REM  RIGHT  ARROW 

0  CHANGE,  USE  THE  ARROW 

25  10110  REM 

71 

10510  IF  C3  =  136  THEN  XI  =  X 

" 

65  10120  REM  DETERMINE  POSITION 

1  -  1:  REM  LEFT  ARROW 

4E 

20150  PRINT  "KEYS  OR  USE  THE 

91  10130  REM  OF  MOUSE 

Si 

10520  IF  Yl  >  24  THEN  Yl  =  24 

MOUSE  TO  MOVE  THE  MOUSE 

3D  10140  REM 

DC 

10530  IF  Yl  <  1  THEN  Yl  =  1 

" 

IC  10130  VTAB  1:  HTAB  40 

9C 

10540  IF  XI  >  40  THEN  XI  =  40 

47 

20160  PRINT  "POINTER,  THEN  PR 

77  10160  INPUT  "";X0,Y0,B0 

£B 

10550  IF  XI  <  1  THEN  Xl  =  1 

ESS  THE  MOUSE  BUTTON  TO 

7D  10170  IF  B0  <  0  THEN  10440:  R 

5D 

10560  REM 

" 

EM  KEY  PRESSED? 

16 

10570  REM  POSITION  CURSOR 

E6 

20170  PRINT  "MOVE  THE  CURSOR 

Dt  101B0  Y0  =  INT  (Y0  /MI)  +  1 

6D 

10580  REM 

TD  THAT  POINT.   TYPE" 

76  10190  IF  Y0  >  24  THEN  Y0  =  24 

A4 

10590  POKE  V0,C0 

EA 

20180  PRINT  "NEW  OR  CORRECTED 

6t  10200  X0  ~    INT  fX0  /  MI)  +  1 

a 

10600  BDSUB  10800 

DATA,  THEN  MOVE  THE" 

75  10210  IF  Xe  >  40  THEN  X0  =  40 

42 

10610  C0  =  PEEK  (V0) 

31 

20190  PRINT  "MOUSE  CURSOR  TO 

iH    10215  IF  B0  =  2  AND  X0  >  20  A 

9E 

10620  IF  V0  =  VI  THEN  C0  =  C2 

'DONE'  IN  THE  MENU" 

ND  X0  <  27  AND  Y0  =  23 

44 

10630  REM  CHANGE  TO  FLASHING 

4A 

20200  PRINT  "BELOW  AND  PRESS 

THEN  38010 

CHARACTER 

THE  MOUSE  BUTTON  TO" 

6D  10216  IF  B0  =  2  AND  SH  =  0  TH 

B7 

10640  CI  =  C0 

D4 

20210  PRINT  "ACCEPT  THE  ENTRI 

EN  X2  =  X0:Y2  =  Y0:  POK 

23 

10650  IF  CI  >  127  THEN  CI  =  C 

ES  ABOVE. " 

E  76B,Y2:  POKE  769, X2: X 

1  -  64 

D9 

20220  PRINT  D*"IN»"S0 

3  =  X0:Y3  =  Y0 

7F 

10660  IF  CI  >  64  THEN  CI  =  CI 

D3 

20230  GOTO  10150 

9B  10217  IF  B0  =  3  AND  SW  =  2  TH 

-  64 

9D 

29999  REM  #30000 

EN  SW  =  3 

HI 

10670  IF  CI  >  95  THEN  CI  »  CI 

IB 

30000  REM 

31  1021S  ON  SW  BDTO  35010,35020, 

-  32 

28 

30010  REM  EXAMPLE 

10315 

4B 

10680  IF  CI  <  64  THEN  CI  =  CI 

2e 

30020  REM 

«S  10220  IF  80  >  1  THEN  10320:  R 

+  64 

Al 

30030  Yl  =  4:  BOSUB  63050: NF* 

EM  BUTTON  PRESSED? 

CB 

10690  POKE  V0,C1 

=  A* 

D5  1022S  IF  X2  <  >  X0  OR  ¥2  <  > 

CE 

10700  GOTO  10150 

2C 

30040  Yl  =  5:  GOSUB  63050: NL$ 

Y0  THEN  SW  =  1:  JGOTO  35 

6B 

10710  IF  XI  <  15  OR  Yl  <  4  OR 

=  A* 

010 

Yl  >  10  THEN  10150 

91 

30050  Yl  =  6:  GOSUB  63050: AD* 

i1    10230  IF  Y0  =  24  THEN  20030 

DE 

10720  G05UB  10800 

=  A* 

76     COMPUTEI      April  1936 


April  1966     COMPUTEl      77 


5C  10190  DflTfl  0,141,36,146,173,5 

73,31 

CE 

11020  DATA  28,208,9,173,61,14 

.3 

8F  10610  DATA  146,141,63,146,173 

6,201 

2C  10200  DATA  141 ,  39,  146,  16"?,  0,  1 

,32,146 

U 

11030  DATA  8,144,19,240,17,56 

41,40 

8«  10620  DATA  141,64,146,173,64, 

,173 

83  10210  DATA  146,173,29,146,141 

146,205 

% 

11040  DATA  57,146,233,216,141 

,61,146 

%   10630  DATA  40,146,48,15,208,1 

,57, 146 

Ce  10220  DATA  173,30,146,141,62, 

0,173 

DF 

11050  DATA  173,58,146,233,3,1 

146,173 

3C  10640  DATA  63,146,205,39,146, 

41,58 

IB  10230  DATA  62,146,205,34,146, 

144,5 

EC 

11060  DATA  146,173,62,146,201 

4B,  15 

A!  10650  DATA  240,3,76,108,148,3 

,0,48 

15  10240  DATA  208,10,173,61,146, 

2,122 

Ft 

11070  DATA  28,208,9,173,61,14 

205,33 

FF  10660  DATA  148,173,57,146,141 

6,201 

22  10250  DATA  146,144,5,240,3,76 

,220,147 

EF 

11080  DATA  16,144,19,240,17,5 

,  134 

CB  10670  DATA  173,58,146,141,221 

6,173 

D5  10260  DATA  147,173,31,146,141 

,147, 173 

IE 

11090  DATA  57,146,233,216,141 

,63,146 

2C  10680  DATA  20,7,141,59,146,16 

,57,146 

75  10270  DATA  173,32,146,141,64, 

9,0 

U 

11100  DATA  173,58,146,233,3,1 

146, 173 

fl7  10690  DATA  141,60,146,173,60, 

41,58 

BB  10280  DATA  64,146,205,36,146, 

146,201 

35 

11110  DATA  146,96,104,133,118 

40,  15 

57  10700  DATA  0,48,28,208,9,173, 

, 104, 133 

7F  10290  DATA  208,10,173,63,146, 

59 

IC 

1U20  DATA  217,104,141,89,170 

205,35 

B4  10710  DATA  146,201,127,144,19 

, 169, 141 

n   10300  DATA  146,144,5,240,3,76 

,240,17 

47 

11130  DATA  141,1,2,169,1,133, 

,123 

B!  10720  DATA  56,173,59,146,233, 

52 

fB  10310  DATA  147,24,173,37,146, 

64,141 

9A 

11140  DATA  96,133,137,132,135 

105,1 

i7  10730  DATA  59,146,173,60,146, 

,134,136 

i1    10320  DATA  141,65,146,173,38, 

233,0 

Bl 

11150  DATA  169,0,133,133,133, 

146,105 

S3  10740  DATA  141,60,146,173,60, 

134,70 

2A  10330  DATA  0,141,66,146,24,17 

146,201 

81 

11160  DATA  136,102,135,144,13 

3,39 

7f  10750  DATA  0,48,28,208,9,173, 

,24,165 

BE  10340  DATA  146,105,1,141,67,1 

59 

BE 

11170  DATA  137,101,133,133,13 

46, 173 

IC  10760  DATA  146,201,64,144,19, 

3,165,138 

13  10350  DATA  40,146,105,0,141,6 

240, 17 

EC 

11180  DATA  101,134,133,134,6, 

9,146 

Ml  10770  DATA  56,173,59,146,233, 

137,38 

ai  10360  DATA  173,62,146,205,66, 

64, 141 

B! 

11190  DATA  138,165,136,5,135, 

146,48 

IF  10780  DATA  59,146,173,60,146, 

208,227 

«  10370  DATA  10,208,29,173,61,1 

233,0 

SB 

11200  DATA  164,133,166,134,96 

46,205 

ft!  10790  DATA  141,60,146,173,60, 

, 133,134 

FJ  103B0  DATA  65,146,176,21,173, 

146,201 

FE 

11210  DATA  132,135,160,0,169, 

64,146 

5!  10800  DATA  0,48,28,208,9,173, 

0,  145 

iE  10390  DATA  205,68,146,43,10,2 

59 

BB 

11220  DATA  133,200,208,2,230, 

0B,  11 

E7  10810  DATA  146,201,64,144,19, 

134, 138 

B2  10400  DATA  173,63,146,205,67, 

240,17 

2C 

11230  DATA  208,4,198,135,48,4 

146, 176 

M  10820  DATA  56,173,59,146,233, 

,  202 

1Z    10410  DATA  3,76,112,147,32,12 

64, 141 

5B 

11240  DATA  76,83,149,96,0,0 

2,14B 

11  10830  DATA  59,146,173,60,146, 

U    10420  DATA  173,57,146,141,51, 

233,0 

Program  3:  TEXT  Filemaker    I 

147,173 

IS  10840  DATA  141,60,146,173,57, 

n    10430  DATA  58,146,141,52,147, 

146, 141 

51 

10  D*  =  CHR*  (4) 

173, 144 

39  10850  DATA  95,148,173,58,146, 

17 

20  PRINT  D*"OPEN  TEXT" 

«4  10440  DATA  7,141,59,146,169,0 

141,96 

CF 

30  PRINT  DiS"WRITE  TEXT" 

,141 

5S  10860  DATA  148,173,59,146,141 

EA 

40  PRINT  "COMPUTE!" 

2"!  10450  DATA  60,146,173,60,146, 

,20,7 

7E 

50  PRINT  "READER  SERVICE" 

201,0 

92  10870  DATA  238,63,146,208,3,2 

89 

60  PRINT  "P.O.  BOX  50950 

02  10460  DATA  48,9,208,24,173,59 

38,64 

EJ 

70  PRINT  "DES  MOINEB" 

,  146 

ID  10880  DATA  146,76,181,147,238 

tA 

80  PRINT  "I A  50950" 

9E  10470  DATA  201,128,176,17,24, 

,61,146 

n 

90  PRINT  ■"• 

173,59 

FA  10890  DATA  208,3,238,62,146,7 

E9 

100  PRINT  "1-800-346-6767" 

tl  10480  DATA  146,105,128,141,59 

6,146 

DA 

110  PRINT  Dt"CLOSE" 

, 146,173 

43  10900  DATA  147,76,11,149,56,1 

Ed  10490  DATA  60,146,105,0,141,6 
0,  146 

73,61 
EO  10910  DATA  146,233,1,141,57,1 

Program  4:  Joystick 

4B  10500  DATA  173,57,146,141,110 

46, 173 

Modifications 

, 147,173 

lA  10920  DATA  62,146,233,0,141,5 

%    10510  DATA  58,146,141,111,147 

8,  146 

FC 

265  B0  -  4 

, 173,59 

4C  10930  DATA  169,0,133,138,169, 

C8 

10150  X0  =  PDL  (0) 

5D  10520  DATA  146,141,144,7,238, 

128,174 

«4 

10160  Y0  =  PDL  (1) 

63, 146 

E9  10940  DATA  58,146,172,57,146, 

78 

10161  Bl  =  PEEK  <  -  162B7) 

?F  10530  DATA  208,3,238,64,146,7 

32,31 

21 

10162  IF  Bl  <  128  AND  B0  =  3 

6,  195 

4!  10950  DATA  149,142,58,146,140 

THEN  B0  =  4 

BE  10540  DATA  146,238,61,146,208 

,57,146 

21 

10163  IF  Bl  <  128  AND  B0  ■=  2 

,3,23B 

3B  10960  DATA  24,169,255,109,57, 

THEN  B0  =  3 

K    10550  DATA  62,146,76,160,146, 

146, 141 

29 

10164  IF  Bl  <  128  AND  B0  =  1 

173,29 

97  10970  DATA  57,146,169,3,109,5 

THEN  B0  =  3 

9B  10560  DATA  146,141,61,146,173 

8,146 

25 

10165  IF  Bl  >  127  AND  B0  =  2 

,30,146 

fB  10980  DATA  141,58,146,24,173, 

THEN  B0  =  1 

28  10570  DATA  141,62,146,173,62, 

57,146 

4D 

10166  IF  Bl  >  127  AND  80  =  4 

146,205 

58  10990  DATA  109,63,146,141,57, 

THEN  B0  =  2 

DS  10580  DATA  38,146,48,15,208,1 

146,173 

21 

10170  IF  PEEK  (  -  163B4)  >  12 

0,173 

IF  11000  DATA  58,146,109,64,146, 

7  THEN  10440 

19  10590  DATA  61,146,205,37,146, 

141,58 

A9 

10180  Y0  =  INT  (Y0  /  10}  +  1 

144,5 

C*  11010  DATA  146,173,62,146,201 

81 

10190  X0  =  INT  (X0  /  6)  +  1 

43  10600  DATA  240,3,76,119,148,1 

,0,48 

32 

20030  REM                    (Q 

76     COMPUTEI     April  1986 


IBM  Variable  Snapshot 


Tony  Roberts,  Production  Director 


This  programming  utility  lets  you  list 

the  current  values  of  all  active  vari- 
ables in  any  BASIC  program — an  in- 
valuable aid  for  debugging.  It  works 
on  any  IBM  PC  with  BASICA  or  PCjr 
with  Cartridge  BASIC. 


When  things  go  haywire  with  a 
BASIC  program,  my  first  inclina- 
tion is  to  check  the  variables: 
PRINT  A$,  PRINT  SCORE,  PRINT 
UPPERLIMIT,  and  so  on.  Compar- 
ing what's  actually  stored  in  a  vari- 
able with  what  you  expected  often 
helps  to  isolate  programming 
problems. 

Printing  variable  values  over 
and  over,  however,  quickly  be- 
comes tedious,  especially  when  ar- 
rays are  involved.  "IBM  Variable 
Snapshot"  takes  the  work  out  of 
this  process. 

After  temporarily  appending 
the  Variable  Snapshot  utility  to 
your  program,  you  can  activate  it 
with  a  simple  GOTO  command 
whenever  your  program  stops  with 
an  error  or  you  press  the  BREAK 
key.  Once  activated.  Variable  Snap- 
shot sifts  through  memory,  printing 
out  first  the  scalar  variables,  then 
the  array  variables  it  finds  there. 
Within  seconds,  you  can  see  the 
values  of  all  the  variables  your  pro- 
gram has  used.  This  kind  of  analy- 
sis has  many  benefits; 

•  By  frequently  checking  the 


variable  list,  you  reduce  the  possi- 
bility of  "forgotten"  variables. 

•  You  can  quickly  spot  typo- 
graphical errors  in  variable  names. 
If  the  list  contains  both  FILE- 
NAMES and  FILENAMS,  you'll  re- 
alize something  is  wrong. 

•  By  checking  variable  types  as 
well  as  names,  you'll  notice  if  the 
list  contains  both  TOTAL%  (an 
integer  variable)  and  TOTAL!  (a 
single -precision  variable) — another 
common  source  of  errors. 

How  To  Take  Snapshots 

Type  in  Program  1  below  and  save 
it  on  disk  in  ASCII  format.  If  you 
type  it  in  with  the  "IBM  Automatic 
Proofreader,"  published  elsewhere 
in  this  issue,  the  program  is  saved 
in  ASCII  format  automatically. 
Otherwise,  use  the  command  SAVE 
"SNAPSHOT.ASC",A. 

Program  2  lets  you  test  Vari- 
able Snapshot  to  verify  that  it's 
working  properly  before  using  it 
with  your  own  programs.  To  run  a 
test,  type  in  Program  2  and  save  it 
on  disk  in  ASCII  format.  Then  ap- 
pend Snapshot  to  it  with  the  com- 
mand MERGE  "SNAPSHOT.ASC." 
Now  type  RUN.  The  test  program 
initializes  several  variables,  then 
stops.  When  you  type  GOTO  1000 
(the  starting  line  number  of  Vari- 
able Snapshot),  the  name  and  value 
of  each  variable  is  printed  on  the 
screen.  You  can  press  CTRL-NUM 
LOCK  on  the  PC  or  Fn-Q  on  the 
PCjr  to  pause  the  display,  or  stop  it 


at  any  time  by  pressing  CTRL- 
BREAK  on  the  PC  or  Fn-BREAK  on 

the  PCjr. 

If  the  variable  values  are  not 
what  you  expected,  recheck  your 
typing,  paying  close  attention  to  the 
type  declaration  symbols  (%,  $, !,  #) 
attached  to  the  variables.  If  even 
one  of  these  symbols  is  incorrect  or 
missing,  you'll  have  problems. 

The  test  program  initializes 
integer,  string,  single-precision, 
and  double-precision  variables  as 
well  as  a  full  set  of  array  variables. 
If  everything  prints  out  as  expected, 
you  can  be  pretty  sure  that  Variable 
Snapshot  is  working  well. 

Friendly  Filename  And 
Quick  Start 

When  Snapshot  begins  its  work, 
the  first  thing  it  prints  is  the  active 
disk  filename,  which  the  IBM  stores 
in  the  11  memory  locations  begin- 
ning at  4Flh  (1265  decimal).  This 
has  nothing  at  all  to  do  with  vari- 
ables, but  simply  provides  an  an- 
swer to  the  question  "What  did  1 
call  this  program  the  last  time  I 
saved  it?" 

If  you  want  to  get  started  with 
Snapshot  quickly,  you  can  omit  the 
entire  array  processing  section 
(lines  1590-2220)  and  change  line 
1280  to  read: 
1280  IF  QARRAYONVo  THEN  END 

This  abbreviated  version  of 
Snapshot  lists  only  simple  vari- 
ables, but  you  can  go  back  later  and 
add  the  lines  to  handle  the  array 


April  19B6     COMPUTEI      79 


Variable 

Description 

Q%,QQ%,QQQ% 

loop  counters 

QTYPE% 

variable  type 

QLENLEFT% 

number  of  characters  left  in  variable  name 

QDIMS% 

number  of  dimensions  in  array 

QARRAYON% 

flag  indicating  if  array  boundary  passed 

QSTRLEN% 

length  of  string  variable 

QBASE% 

status  of  OPTION  BASE  command 

QS 

for  single-  and  double-precision  conversions 

QCHAR$ 

builds  active  filename 

QFILE$ 

active  filename 

QNAMES 

name  of  variable  being  processed 

QVAR! 

memor>'  pointer  to  current  variable 

QARRAY! 

start  of  array  space 

QFREE! 

start  of  free  space 

QA5IZE! 

size  of  current  array 

QVALUEf 

temporary  storage  for  integer  values 

Q5TRPTR! 

points  to  location  of  actual  string 

QPTR! 

points  to  start  of  next  element  in  array 

QDIMSIZE(  ) 

size  of  array  dimensions 

variables.  The  REMs  in  the  program 
listing  are  not  referenced  by  other 
lines,  so  you  can  safely  omit  them 
when  typing  the  program. 

After  you  have  Snapshot 
working,  edit  line  1000  to  suit  your 
preferences  for  screen  color,  width, 
and  so  on. 

You  may  want  to  renumber 
Snapshot  so  its  line  numbers  won't 
interfere  with  those  of  your  own 
programs.  (Low  line  numbers  were 
used  in  the  listing  to  make  entering 
the  program  easier.)  Load  the  pro- 
gram into  memory  and  use  the 
command  RENUM  xxxxx,  where 
xxxxx  is  Snapshot's  new  starting 
line  number.  Then  save  the  pro- 
gram back  to  disk,  again  using  the 
ASCII  option  so  Snapshot  can  be 
merged  other  programs. 

The  version  I  use  begins  at  line 
60000,  and  I've  programmed  a 
function  key  to  execute  the  com- 
mand GOTO  60000.  Whenever  a 
program  halts,  I  simply  press  Fn-6 
to  see  the  value  of  every  variable. 

Array  Bases 

IBM  BASIC  includes  the  OPTION 
BASE  statement  for  defining  the 
lowest-numbered  element  in  an  ar- 
ray. If  a  program  contains  the  state- 
ment OPTION  BASE  0,  or  if  no 
OPTION  BASE  statement  is  includ- 
ed, all  arrays  start  with  a  0  element. 
An  OPTION  BASE  1  statement 
means  that  arrays  begin  with  ele- 
ment 1. 

Variable  Snapshot  must  know 
which  OPTION  BASE  is  in  effect  to 


display  array  values  properly. 
Memory  location  45Ch  (1116  deci- 
mal) provides  this  information. 
PEEKing  that  address  yields  either 
a  0  or  1,  indicating  which  base  is 
selected. 

The  adjacent  memory  location, 
45Dh  (1117  decimal),  is  related  but 
a  little  more  specific.  If  no  OPTION 
BASE  command  has  been  issued, 
45Dh  contains  a  0;  if  OPTION 
BASE  0  has  been  executed,  45Dh 
contains  a  1;  and  if  OPTION  BASE 
1  has  been  executed,  the  location 
contains  a  2. 

Try  changing  line  10  in  Pro- 
gram 2  to  read  OPTION  BASE  0 
and  observe  the  effect  when  run- 
ning Variable  Snapshot. 

Although  IBM  BASIC  allows 
arrays  of  up  to  255  dimensions,  few 
programs  make  use  of  more  than 
one  or  two.  For  this  reason.  Vari- 
able Snapshot  does  not  include  pro- 
visions for  arrays  with  more  than 
two  dimensions.  Additional  loops 
can  be  added  to  handle  more  com- 
plex arrays,  if  necessary. 

A  Few  Cautions 

To  be  truthful.  Snapshot  does  not 
list  every  variable — it  ignores  those 


that  begin  with  the  letter  Q.  The 
Snapshot  routine  itself,  you'll  no- 
tice, uses  only  variables  beginning 
with  the  letter  Q.  That  keeps  Snap- 
shot's own  variables  from  being 
printed  along  with  those  of  your 
program. 

If  you're  inclined  to  tinker  with 
this  routine,  you  must  be  careful 
about  introducing  new  variables. 
Lines  1020-1040  initialize  every 
variable  used  by  the  routine,  effec- 
tively reserving  space  for  them  in 
the  variable  table. 

Lines  1120-1140  determine 
the  boundaries  of  the  variable  table, 
reference  points  the  program  can- 
not do  without.  If  a  new  variable  is 
added  to  the  program  after  the 
boundary  measurements  are  taken, 
confusion  results;  the  boundaries 
move  and  Snapshot  loses  its  way. 

Although  Snapshot  works 
with  most  programs,  there  can  be 
complications.  If  you've  written 
your  program  to  make  use  of  all 
available  memory,  there  won't  be 
room  in  the  variable  table  for  Snap- 
shot's own  variables.  You'll  need  to 
leave  Snapshot  about  300  bytes  of 
workspace. 

How  Snapshot  Works 

As  mentioned  above.  Snapshot 
reads  the  boundaries  of  the  scalar 
variable  area,  the  array  variable 
area,  and  the  free  space  area,  then 
works  its  way  through  the  variable 
areas  byte  by  byte  deciphering  the 
information  stored  there.  Once  it 
reaches  free  space,  its  work  is 
finished. 

The  IBM  stores  scalar  variables 
as  shown  below. 

Following  the  last  character  of 
the  variable  name  is  the  value  of 

the  variable. 

•  An  integer  variable  is  stored 
in  two  bytes  in  the  standard  low 
byte/high  byte  format.  The  high  bit 
of  the  second  byte  indicates  the 
sign  of  the  integer.  If  it  is  set,  the 
integer  is  a  negative  number. 


Byte  1  =  type  (2  =  integer,  3  =  string,  i  —  single  precision,  8  =  double 

precision) 
Byte  2  "  first  character  of  variable  name 
Byte  3  =  second  character  of  variable  name 
Byte  4  =  number  of  characters  remaining  in  variable  name 
Byte  5 

.  =  rest  of  variable  name  (high  bit  set) 


SO     COMPUTE!      April  1986 


•  String  variable  pointers  are 
stored  in  three  bytes.  The  first  is  the 
number  of  bytes  in  the  string,  and 
the  second  and  third  point  to  the 
address  (either  in  the  string  pool  or 
in  the  BASIC  program  area)  where 
the  string  is  stored. 

•  Single-precision  variable  val- 
ues are  stored  in  four  bytes.  The 
values  of  these  bytes  can  be  concat- 
enated into  a  string,  then  converted 
into  a  single-precision  number 
using  the  CVS  function. 

•  Double-precision  variables 
occupy  eight  bytes,  which  can  be 
concatenated  and  converted  as 
above  using  the  CVD  function. 

Array  variables  are  stored  sim- 
ilarly, but  there's  some  additional 
information  between  the  end  of  the 
variable  name  and  the  actual  begin- 
ning of  the  variable  values. 

Following  the  variable  name 
are  two  bytes  that  indicate  the  total 
size  of  the  array.  The  next  byte 
holds  the  number  of  dimensions. 
That  is  followed  by  two  bytes  de- 
scribing the  number  of  elements  in 
the  last  dimension.  Then  two  bytes 
describe  the  number  of  elements  in 
the  next  to  last  dimension,  and  so 
on,  until  each  dimension  in  the  ar- 
ray has  been  defined. 

Finally,  the  values  of  the  array 
variables  follow,  and  are  stored  in 
the  same  manner  as  values  for  sca- 
lar variables. 

Using  this  information,  the 
program  listing,  the  deecription  of 
Snapshot  variables  found  in  the  ac- 
companying table,  and  the  actual 
program  output,  you  should  be  able 
to  develop  a  good  understanding  of 
how  BASIC  treats  your  variables. 


For  instructions  on  entering  Itiese  listings, 
please  refer  to  "COMPUTEI's  Guide  to  Typing 
In  Progroms"  in  this  issue  of  compute'. 


Program  1; 
Snapshot 


IBM  Variable 


U    leoa  DEF  SEG: SCREEN  a, 0: WIDTH  B0:CQ 

LOR  7,0: 
BB  iei0  REM  initialize  variables 
C6  1020  a-/.'0:aQ'/.=0!QaQX=0:aLENLEFT7.=e: 

aTYPE7.=0:QDIMSj'.=0:aflRRfiVQN7.=0: 

QSTRLEN7.=0:  DB  ASE7.=  0 :  GD I  MS  I ZE7. 1 

1)=»:QDIMSIZE(21=0 
LS  1030  E»="":ncHAR«="":QFILEt="":DNflK 

E«="" 
flJ  iei0  □UflR!=0:DflRRAV!=0:OFREE!=0:OAS 

I ZE ! =0: QVflLUE ■ =0: QSTRPTR ! =0: QP 

TR!=0 
ES  1050  REM  Bet  active  filename 
Oi  1060  FDR  ax=e  TO  10 
B9  1070  DCHAR«=CHR*(PEEK(SiH4Fl+D7.)  ) 
P«  iaB0  IF  flSC(aCHAR*)>9i!i  AND  ASCCQCHfi 


»H  1090 
LI  1100 


CB  1110 

n  1 120 

HI  1130 
KB  1140 

NF  1150 
M    1160 

CH  1170 
JO  1180 

LS  1190 
PH  1200 
t>  1210 
U  1220 


EC  1230 
HJ  1240 

BP  1250 
HE  1260 

0!  1270 


12B0 
1290 


R»)<123  THEN  QFILE»-DFILE*+CHR 
»<ASC(nCHflR*)-32)  ELSE  DFILE*' 
GFILE«+DCHAR« 
NEXT 

PRINTiPRINT  "Active  disk  -filen 
ame  Is:   ";MID» (DFILE», 1,8) ;  ", 
"imD»(QFlLE»,9>:PRINT 
REIi  get  addresses  of  scalar  va 
rlables,  array  variables,  and 
free  space 

QVAR ! =PEEK ( tH358) +PEeK (1H359) » 
256 

QflRRflY  !  =PEEK  (&H3SAJ  +PEEK  (S.H35B 
!I2S6 

QFREE  !  ^PEEK  ( S,H33C)  +PEEK  <  !<H35D  > 
t25b 

GBASE7.=PEEK  (t.H45C) 
REM  Start  ai    variable  pracessi 
ng 

QT¥PE7.=PEEK  (QVAR  •.  > 
IF  (QTVPEy.<2  OR  DTYPE7.>4)  AND 
QTYPEXOB  THEN  END 
QLENLEFT7.=PEEK  (QVAR  !  +3) 
REM  get  variable  name 
nNAME*="" 

IF  PEEK {QVAR : -H ) >127  OR  IPEEKC 
QVAR!  +  n-ai  AND  QARRAyONX=0)  T 
HEN  2240 

FOR  07,=  1  TO  aLENLEFT7. 
ONAME»=QNAME»+CHR« (PEEK (QVAR! + 
3+Q7.)  AND  127) 
NEXT 

QNA«E«=CHR» (PEEK (QVAR  H- 1 ) ) +CHR 
*  (PEEK  IQVAR:  1-21  )tONAHE» 
REM  branch  to  appropriate  rout 
ine  depending  on  varlabla  type 
IF  0ARRAYDN7.  THEN  1600 
ON  QTYPE7.-1  BOTO  1320,1370,146 
0 

SOTO  1530 
REM  inteters 

0 VALUE  I  -PEEK  (OVAR  !  +DLENLEFTr.+4 
>  +PEEK  ( QVAR  !  +QLENLEFTr.+S )  »  256 
IF  DVALUE ! >32768 I  THEN  QVALUEI 
-QVALUE ! -6SS36 ! 

PRINT   ONAflEt;  "%";,"=    "j  QVALUE! 
GOTO   2240 
REM    strings 

PRINT  ONAME»! ■«","-  "(CHR«»34 
>! 

Q3TRLEN7.=PE£K(OVflR'+(3LENLEFT7.+ 
4> 

(3STRPTR  :  -PEEK  (QUAR  I  +QLENLEFT7.+ 
5)  +PEEK  (QVAR  I  +QLENLEFTy.+6)  »236 
FOR  D7.=0  TO  QSTRLEN7.-1 
PRINT  CHR* (PEEK (QSTRPTR ! +QX) > ; 
NEXT 

PRINT  CHR»(34) 
GOTa  2240 

REM  single  precision 
0*="" 

PRINT  DNAME*;" ! ","=  "; 
FOR  07.-0  TO  3:  Q»=Q»-«-CHR»  (PEEK 
(QVAR !  ■•■QLENLEFT7.+4+aX)  ) 
NEXT 

PRINT  CVS(D«) 
GOTO  2240 

REM  double  precisian 
D«="" 

PRINT  (JNAMEt;  "tt",  ■'.=  "  ; 
FDR  07.-0  TD  7:  n»=0«+CHR»  (PEEK 
(DVAR:+QLENLEFT7.+4+a7.)  ) 
NEXT 

PRINT  CVDfO*) 
(iOTQ  2240 

REM  array  routine?! 
QASI  ZE  !  =PEEK  (DVAR  '  +4+(3LENLEFT7. 
)  +PEEK  (DVAR  >.  tS+QLENLEFT7.)  »2a6 
IF  ASC(QNAME»)"8«  THEN  2240 
QDIMS7.-PEEK  (DVAR  '  f  6+DLENLEFT7.) 
IF  QDIM3y.>Z  THEN  2240 
QPTR !  =QVAR '.  +7+0LENLEFTX 
FOR  07.-QDIHS7.  TO  1  STEP  -t 
QDIMSIZE7.  <07.)=PEEK(aPTR'  ) +PEEK 
(QPTRI+1) «256 
(3PTR  !  =aPTR  ! +2 
NEXT 
DN  aTYPE7.-l  GOTO  1720,1830,198 


KI  1700  BOTO  2110 

OL  1710  REM  integer  arrays 

M  1720  PRINT 

BL  1730  IF  DDIMSX^Z  THEN  FOR  QQDX-QBAS 

E7.  TO  DDIMBIZE7.  [2>  +  (DBASE7.-0) 
Sr  1740  FOR  QK-aBASE7.  TO  0Din3IZE7.  (1 )  + 

(QBASE7.-0) 
H  1750  QVALUE  i -PEEK  (QPTR  !)+PEEK{(iPTR! 

+1)*256 
a    1760  IF  0VALUE'>3276BI  THEN  QVALUE! 

=QVALUE 1 -65536 ! 


NP  1300 

FN  1310 

EC  1320 

W  1330 

K  1340 

NC  1350 

FE  1360 

PH  1370 

S»  1380 

lie  1390 


GJ 

1400 

PB 

1410 

DC 

1420 

Gl 

1430 

W3 

1440 

PJ 

1450 

PL 

1460 

FE 

1470 

cn 

1480 

(P 

1490 

BB 

1500 

M( 

1510 

KB 

1S20 

K 

1S30 

HH 

1540 

M 

1550 

El 

1560 

FE 

1570 

CP 

1580 

K 

1590 

JB 

1600 

Ji 

1610 

tt 

1620 

I! 

1630 

iL 

1640 

KS 

1650 

H 

1660 

IE 

1670 

It 

1680 

JE 

1690 

OJ 

17B0 

Jn 

1790 

EH 

1800 

M 

1810 

M 

1820 

AS 

1830 

M 

1840 

St 

1850 

IE 

1860 

(A 

1870 

CD    [880 


ct 

1B90 

hf 

1900 

H 

1910 

6P 

1920 

CA 

1930 

11 

1940 

ei 

1950 

01 

1960 

EL 

1970 

IK 

1960 

CI 

1990 

EP 

2000 

V 

2010 

w 

2020 

CI 

2030 

Gt 

2040 

AN 

20S0 

IF  QDIMS7.-1  THEN  PRINT  QNAME«; 
"7.(";MID»(STR»(t37.)  ,2)  i")  ■■,"-  " 
;QVALUE!  ELSE  PRINT  QNAME*;"7.( 
";MID»iSTR»(OX) ,2) ;", ";MID«[ST 
R*(OaOy.)  ,2);  ")","-  "J  QVALUE! 
QPTR 1 »aPTR ! +2 
NEXT  07. 

IF  DDIMS7.-2  THEN  NEXT  DQ07. 
GOTO  2Z40 
REM  string  arrays 
PRINT 

IF  QDIMSX-2  THEN  FOR  Q0Q7.-QBAS 
EX  TO  DD1MSIZE7,  (2)-i-(aBflSEX-0) 
FOR  aX-G!BflSE7.  TD  QDIMSIZEXd)* 
(aBA3E7,-0) 

QSTRLENX"PEEK (QPTR ! ) 
QSTRPTR ! -PEEK (QPTR ! + I ) +PeEK ( DP 
Tf?! +2)1236 

IF  QDIMS7.=  1  THEN  PRINT  ONAME*; 
"•<";MID»(STR»(QXI ,21; "i", "=  " 
!CHR»(34>;  ELSE  PRINT  (3NAME»;  " 
»(";mD»(STR*(DX)  ,2)  5  "  ,  "i  MID*  ( 
STR»<QOQX)  ,2)  ;■■)  ","~  "iCHR»(34 
>i 

FDR  QQ7.-0  TO  QSTRLENX-1 
PRINT  CHR*(PEEK(QSTRPTR!+00%) 1 
i 

NEXT  OQX 
PRINT  CHR* (34) 
QPTR'=apTR!t3 
NEXT  QX 

IF  QDIMS7,'-2  THEN  NEXT  QOQX 
BOTD  2240 

REM  singld  precision  arrays 
PRINT 

IF  DDlMSX-2  THEN  FDR  DQQ7.»0BAS 
EX  TO  QDIMSIZEX(2)+(DBASEX-0) 
FDR  a7.-aBASEX  TO  QDIMSIZEy.(  1>* 
<DBASE%-0) 
Q*="" 

FOR  007.-0  TO  3 
Q*-0»+CHR» ( PEEK ( QPTR ! +BOX ) ) 
NEXT  OQX 

IF  QDIMBX-'l  THEN  PRINT  QNAME*] 
" !  <";MID»(STR»(DX) ,2);")",  "-  " 
;CVB(Q*1  ELBE  PRINT  QNAME*; "!( 
"iMlD»(STR»(D%) ,2) i", "MID»(STR 
•  (QOQX)  ,2)  ;")",  "■=  "iCVS(Q*) 
QPTR'=DPTR!+4 
NEXT  OX 

IF  ODIMSX-2  THEN  NEXT  DQQV. 
GOTO  2240 

REM  double  precision  arrays 
PRINT 

IF  QDIMSX-2  THEN  FDR  QQQX-DBAS 
EX  TO  QDI113IZEX<Z>  +  (QBfl3EX-0) 
FDR  QX-QBASEX  TD  DDIMSIZEX ( 1) + 
(□BASEX>0) 
Q»«"" 

FOR  Qnx=0  TO  7 
Q«-Q«*CHR» I PEEK (OPTR I +QQX] ) 
NEXT  007. 

IF  0DIMS7.-1  THEN  PRINT  QNAME*; 
"ll(";MID»<STR*(QX>,2);  "l",  "-  " 
|CVD(Q»)  ELSE  PRINT  DNAME*; "«( 
■■;M1D*(STR«(DX)  ,2)  J  "  ,  ";  MID*  (ST 
R*(aQaXl  ,21  ;  '■]  ","-  ";CVD1Q*) 
QPTR ! =QPTR • +8 
NEXT  QX 

IF  DDlttS7."2  THEN  NEXT  OOQX 
GOTO  2240 

REM  (Jet  address  of  neat  variab 
1> 

IF    QARRAYONXOl    THEN   QUflR!=DVA 
R ! +0LENLEFTX+DTYPEX+4    ELSE    QVA 
R  !  -DVAR  !  +Qft3  IZE!l-aLENLEFTX*6 
Hit   2250    IF    DVAR!->DARRAY!    THEN   QARBAYO 

Ny.-i 

US  2260  IF  QVARI->OFREE!  THEN  END 
OH  2270  GOTO  1170 

Program  2:  Snapshot  Demo 

BL  10  REM  Snapshot  demo  program 

«S'20  OPTION  BASE  1 

U  30  AX-2:A*-"This  is  a  string. ": A ' =1 
0000 l!:A»=345692eil« 

lA  40  DIM  INTEBERX(5)  ,STRIN«(5), SINGLE 
! (5) .DOUBLE* (51 

8!l  50  DIM  IGRX(5,3)  ,3TN«(5,3)  ,SNG!  (5,3 
)  ,DBL«(3,3) 

IJ  60  FOR  1  =  1  TO  5:  INTEBERX(I)=I:STRIN 
»(I)-CHR*(64+I) iSINQLE! (I)-I»300 
00:DOLIBL£*I<I)-I»1.5E+07:NEXT    I 

K  70  FDR  I-l  TO  5:F0R  J=l  TD  3:IGRX(I 
,J>-I+J:STN»(I,J)  =[:HR«  ( I  ■1-64 1  +CHR 
«(J+4a!:SNG! ( I , J) -100>It J: OBLtt (I 
,J)-I/JtNEXT    J, I  _ 

'.<■   80  END  '& 


n  2060 
II  2070 
FA  20B0 
OJ  2090 
US  2100 
PB  2110 
DH  2120 

n   2130 

SA  2140 
DO  2150 
W  2160 
m  2170 
C)  2180 


EH  2190 
HI  2200 
EP  2210 
HI  2220 
BH  2230 

IH  2240 


April  1986     COMPUTEI     81 


ATARI 
TEXTDUMP 


Here's  a  short,  simple  utility  that 
quickly  dumps  a  GRAPHICS  0  screen 
to  a  printer.  It  works  with  all 
400/800,  XL,  and  XE  computers. 


I've  always  wanted  the  capability  to 
dump  a  copy  of  a  text  screen  to  my 
printer.  I  also  wanted  this  capability 
available  from  BASIC.  My  efforts  to 
find  such  a  program  were  fruitless. 
So,  the  only  solution  was  to  write 
one  myself. 

There  were  several  require- 
ments I  established:  1)  It  should  be 
fast — written  in  machine  language. 
2)  It  should  sit  in  a  relatively  safe 
location  in  memory,  surviving  sys- 
tem resets.  3)  It  should  always  be 
ready  to  do  its  job,  whether  called 
in  direct  mode  or  from  within  a 
program.  4)  It  should  be  easy  to 
use. 

The  result  is  "Atari  Text- 
dump."  You  can  make  your  own 
copy  of  Textdump  by  typing  in  the 
program  listing  below.  It  creates  an 
AUTORUN.SYS  file  on  disk  that 
automatically  loads  Textdump  into 
memory  page  6  (address  1536) 
when  you  boot  the  system  from 
that  disk.  To  call  the  routine,  make 


Ralph  Johnson 


sure  your  printer  is  online  and  enter 
this  statement: 

A  =  USRa536) 

This  works  in  both  direct  mode 
or  within  a  program. 

If  you  don't  have  a  disk  drive, 
or  if  you  don't  want  Textdump  to 
load  as  an  AUTORUN.SYS  file,  de- 
lete lines  10-1000  in  Program  1  and 
substitute  this  new  line  10: 

10  FOR  A  =  1S36  TO  1724:READ  B:POKE 
A,B:NEXT  A 

Again,  you  can  call  Textdump 
as  described  above  in  either  direct 
or  program  mode.  You  can  also 
convert  this  version  of  the  program 
into  a  module  for  use  in  your  own 
programs. 

If  you  like,  you  can  modify 
Textdump  to  print  a  smaller  portion 
of  the  GRAPHICS  0  screen.  Simply 
POKE  the  desired  number  of  rows 
you  want  to  dump  into  memory 
location  1613. 

For  Instructions  on  entering  this  llsling,  pleas© 
refer  to  "COMPUTEI's  Guide  to  Typing  In 
Programs"  in  this  issue  of  COMPUTE!. 

Atari  Textdump 

CL  10  CLOSE  #1 

PS20  OPEN  #1  ,  a,  0,  "D:  AUTORUN 

.  SYS" 


EJ  30  F 
I 

Id  40  F 
D 
N 

CP  50  C 

Cn  1000 

DB  1002 


U  1003 

EF  1004 

«C  1005 

SF  1006 

EP  1007 

DB  1008 

OL  100  9 

NP  1010 

OL  10  11 

EJ  10  12 

BE  10  13 

L«  1014 

CI  1015 


OR  fl  = 
NT  #1 

OR  fl  = 

B:  PR 
EXT  A 
LOSE 

DATA 

.  i' 

DATA 

3,  15 
,74, 
DATA 
157, 
DATA 
3,3, 
,32, 
DATA 
89,  1 
DATA 
5,  32 
4,16 
DATA 

04,  1 
,  143 
DATA 
,  224 
,  209 
DATA 
3B,  1 
9 

DATA 
7,15 
,69, 
DATA 
5,15 
DATA 
,  240 
12,1 
DATA 
58,  1 
DATA 
.0,0 
,0,0 
DATA 
,0,0 


1  TO  6:READ  B:PR 
; CHR4  tB)  ;  : NEXT  A 
1536  TO  1724:REA 
INT  #1 ; CHR* (B) ; : 

#1 
255,255, 0,6, 188 


104 
7,  66 
3,16 

157 
69,  3 

141 
169. 
B6,  2 

88 
33,2 

0,  2 
,  157 
5,  20 

1,1 
05,  0 


162,  a 

,3, 169 

i9,  144 

,68,3, 

,  169, 0 

, 143,6 

255, 15 

;2a,  165 

3,  20 


133 


0, 169, 
,B, 137 

169,6, 

,  157,7 
7,72,3 


3, 165, 

;04, 162,0, 160 

203, 10 

, 232, 2 


!4,  177, 
.147,6 
13,  105 


33, 203 

133,  2 


. 165,2 
04, 173 


6, 201 , 24, 240, 52 
, 40, 240, 4, 224, 40 
,217, 169 

155,  157,  147,  6,  2 
43,  6,  162, 80,  169, 


157 
7,  68 
3,16 

157 
7,72 

228 

173 
57,  6 

86, 
55,  0 

0,  0 
,0,0 
,0,0 

0,  0 
,0,0 


,66, 

,3,  I 

9,0 

,73, 

,3,3 

,  162 

,  162 

6,3, 

228, 

,0,0 

,0,0 

,0,0 

,0,0 

,0,0 

,  155 


3, 169, 14 
69,6, 157 

3, 169,25 

2,  86 

,0, 224,0 

, 80, 169, 

32 

96, 0, 80, 

,  0,  0,  0,  0 
,0,0,0,0 

,0,0,0,0 
,0        © 


82     COMPUTEI     April  1986 


§!• 


Amig 
Batch  Files 


Charles  Brannon 
Program  Editor 


AmigaDOS  is  more  than  a  console- 
driven  disk  operating  system.  By  exe- 
cuting a  sequence  of  AmigaDOS 
commands  stored  in  a  file,  AmigaDOS 
takes  on  some  of  the  characteristics  of 
a  programming  language.  Whether 
you  want  to  simplify  repetitive  disk 
commands  or  create  personalized  cus- 
tom commands,  batch  files  further  ex- 
tend the  range  and  flexibility  of 
AmigaDOS. 


No  matter  how  easy  it  is  to  use  a 
program,  the  most  popular  pro- 
grams are  those  that  give  users 
more  power.  And  although  a  pro- 
gram may  have  scads  of  powerful 
commands,  the  most  powerful  pro- 
grams are  those  which  let  users  put 
the  commands  together  in  new 
ways — in  effect,  to  write  programs. 
Instead  of  forcing  you  to  al- 
ways issue  commands  one  at  a 
time,  a  programmable  application 
lets  you  create  a  script  of  com- 
mands to  customize  the  behavior  of 
the  program.  Whether  we're  talking 
about  word  processing  macros, 
spreadsheet  templates,  relational 
database  languages,  or  advanced 
machine  language,  programmabili- 
ty  is  the  real  key  to  software  power. 
If  you  feel  limited  by  a  certain  range 
of  commands,  you  can  combine  the 
commands  in  new  ways  to  create 
personalized  features,  just  as  we 
combine  the  vocabulary  of  English 
words  to  create  a  wealth  of  litera- 
ture. Why  just  read  when  you  can 
write? 


Scripts,  Sequences,  And 
Batches 

AmigaDOS  is  more  than  just  a  disk 
operating  system — it's  a  program- 
mable system  that  can  process  lists 
of  its  own  commands  as  well  as 
individual  commands.  In  effect, 
AmigaDOS  is  a  simple  disk-oriented 
programming  language, 

A  list  of  AmigaDOS  com- 
mands can  be  stored  in  a  disk  file 
variously  known  as  a  script,  a  se- 
quence, or  a  batch  file.  The  term 
"batch  file"  is  most  commonly  used 
by  those  who  work  with  PC-DOS, 
MS-DOS,  and  CP/M,  which  are 
also  programmable  disk  operating 
systems.  To  keep  things  straight, 
we'll  use  "batch  files"  synony- 
mously with  "scripts"  or 
"sequences." 

Even  if  you  don't  program  in 
BASIC  or  any  other  language,  you 
may  be  interested  in  learning  about 
AmigaDOS  batch  files.  The  batch 
file  "language"  is  simply  made  up 
of  the  same  AmigaDOS  commands 
you've  probably  been  using  all 
along  (see  "Introduction  to  Amiga- 
DOS,"  Parts  1  and  2,  in  the  Febru- 
ary and  March  1986  issues  of 
COMPUTE!).  There  are  also  a  few 
AmigaDOS  commands  designed 
especially  for  batch  files. 

Creating  and  running  batch 
files  is  easy.  Using  a  text  editor,  you 
just  type  in  a  list  of  AmigaDOS 
commands.  Then  you  save  the  list 
on  disk  under  a  filename.  To  run 
the  batch  fUe,  you  type  EXECUTE 
filename  at  an  AmigaDOS  prompt. 
AmigaDOS  reads  the  batch  file  and 
executes  the  list  of  commands,  just 
as  if  you  had  typed  them  one  by 
one  yourself. 

We  won't  cover  some  of  the 


more  advanced  features  of  batch 
files,  useful  only  to  advanced  C  and 
machine  language  programmers. 
Instead,  we'll  concentrate  on  the 
everyday  utility  of  batch  file 
programming, 

A  Quick  Example 

In  a  moment,  we'll  show  how  to 
create  batch  files  with  ED,  the 
AmigaDOS  full-screen  text  editor, 
but  first  there's  a  simpler  way  to 
create  a  short  batch  file.  Enter  this 
line  at  an  AmigaDOS  prompt: 
copy  *  to  Hello 

(Note  that  AmigaDOS  commands 
can  be  entered  in  uppercase  or 
lowercase.) 

Although  nothing  seems  to 
happen,  AmigaDOS  is  waiting  for 
you  to  enter  some  lines.  We'll  use 
the  ECHO  command  to  display  a 
friendly  message.  ECHO  displays 
any  text  that  follows  it  within  quo- 
tation marks,  just  like  the  PRINT 
statement  in  BASIC,  One  difference 
is  that  if  you  want  to  ECHO  only  a 
single  word,  the  quotes  aren't 
necessary. 

At  an  AmigaDOS  prompt,  en- 
ter the  following  text,  pressing  RE- 
TURN after  each  line; 

echo  "Hellol" 

echo  "I  am  your  friend,  the  Amiga" 

echo  "personal  computer," 

After  the  last  line,  press  CTRL- 
\ .  This  key  is  the  one  to  the  left  of 
the  BACKSPACE  key.  CTRL- \ 
tells  AmigaDOS  that  you're  fin- 
ished, and  that  it  should  finish  writ- 
ing and  close  the  file.  This  key 
represents  EOF,  for  End  Of  File. 

To  confirm  that  you've  typed 
the  file  correctly,  enter: 
TYPE  Hello 


April  1986     COMPUTEI      83 


You  should  see  the  same  lines  you 
typed.  Now  you  can  start  this  sim- 
ple program; 
EXECUTE  Hello 
This  should  print  on  the  screen: 

Hello! 

I  am  your  friend,  the  Amiga 

personal  computer. 

Using  ED 

It  would  be  nice  to  have  the  Amiga 

actually  speak  this  greeting.  Rather 
than  type  in  a  whole  new  file,  we'll 
use  ED,  the  screen  editor,  to  make 
the  simple  changes  we're  interested 
in.  Enter: 
ED  Hello 

This  runs  ED  and  also  loads 
the  batch  file  named  Hello.  When 
you  start  ED,  you  can  give  it  the 
name  of  any  file  to  edit.  If  the  file- 
name doesn't  exist,  it  will  be  creat- 
ed; otherwise  the  file  is  auto- 
matically displayed  on  the  editor 
screen.  (Incidentally,  AmigaDOS 
has  another  text  editor  called  EDIT, 
but  it's  not  as  easy  to  use  as  ED.) 

We'll  make  the  Amiga  speak 
the  ECHO  messages  aloud  by  tak- 
ing advantage  of  the  system's  built- 
in  speech  synthesis  via  the 
AmigaDOS  SAY  command  (added 
to  AmigaDOS  version  1.1),  To  learn 
more  about  SAY,  just  enter  SAY  by 
itself  to  enter  an  interactive  mode 
with  on-screen  instructions. 

After  you  start  ED  by  typing 
ED  Hello,  the  batch  file  we  previ- 
ously entered  should  be  on  the 
screen,  with  the  cursor  at  the  begin- 
ning of  the  first  line.  ED  is  a  full- 
screen text  editor,  so  you  can  move 
the  cursor  anywhere  within  the  file 
(but  not  past  the  last  line).  To  insert 
some  text,  just  start  typing.  The 
DEL  and  BACKSPACE  keys- can  be 
used  to  delete  characters. 

Move  the  cursor  to  the  second 
ECHO  line  and  press  RETURN. 
This  inserts  a  blank  line.  Cursor  up 
to  the  blank  line  and  enter: 
SAY  HELLOI 

You  don't  need  to  press  RETURN  at 
the  end  of  the  line,  since  you  al- 
ready did  this  to  open  up  a  line  for 
typing. 

Now  cursor  to  the  end  of  the 
file  and  type: 

SAY  I  am  your  friend,  the  Amiga 
personal  computer, 

(Notice  that  SAY  is  the  only  Amiga- 


DOS  command  that  doesn't  require 
you  to  enclose  text  containing 
spaces  with  quotes,)  This  is  how 
your  screen  should  look: 

echo  "Hello!" 

say  Hello! 

echo  "I  am  your  friend,  the  Amiga" 

echo  "personal  computer." 

say  I  am  your  friend,  the  Amiga  personal 

computer. 

With  the  cursor  at  the  end  of 
the  file,  press  the  ESC  key.  An  as- 
terisk (*)  should  appear.  Press  the  X 
key,  then  RETURN.  This  exits  ED 
and  saves  your  changes  back  to 
disk. 

Finally,  type  EXECUTE  Hello 
to  try  out  your  talking  batch  file. 

Although  these  techniques  are 
sufficient  for  simple  editing,  ED  has 
dozens  of  editing  commands.  For 
example,  CTRL-B  (press  CTRL  and 
B  at  the  same  time)  blanks  out  and 
deletes  the  line  the  cursor  is  on. 
ESC-J-RETURN  joins  two  lines  to- 
gether. Space  doesn't  permit  a  dis- 
cussion of  all  these  commands,  but 
if  you  like  to  experiment,  refer  to 
the  abbreviated  ED  reference  chart 
accompanying  this  article. 

Startup-Sequence 

A  special  AmigaDOS  batch  file, 
called  the  startup-sequence,  is  exe- 
cuted automatically  when  you  boot 
up  an  AmigaDOS  or  Workbench 
disk  by  inserting  it  at  the  Work- 
bench prompt.  Startup-sequence 
normally  just  displays  a  message, 
then  launches  the  Workbench  and 
ends  the  command  line  interface. 
To  edit  this  batch  file,  enter: 

ed  s/startup-sequence 

This  runs  ED  and  calls  up  the 
file  "startup-sequence"  from  the  S 
subdirectory.  This  subdirectory, 
which  can  also  be  accessed  as  the  S: 
device,  is  a  convenient  place  for 
batch  files.  Just  as  AmigaDOS  by 
default  searches  for  AmigaDOS 
commands  in  the  C  subdirectory, 
the  EXECUTE  command  first  looks 
for  a  batch  file  in  the  S  subdirectory. 
If  AmigaDOS  can't  find  the  batch 
file  in  this  subdirectory,  it  looks  for 
it  in  the  current  directory.  So  no 
matter  what  your  current  directory 
is,  you  can  always  use  your  batch 
file  if  you  place  it  in  the  S  directory 
on  your  startup  disk. 

When  you  first  load  startup- 
sequence  into  ED,  you'll  see  some- 
thing like  this: 


Common  ED  Commands 

Immediate  Commands  (hold  down  CTRL 
and  press  key): 

CTRL-A 
CTRL-B 
CTRL-D 
CTRL-E 


CTRL-N 
CTRL-O 
CTRL-U 
CTRL-Y 


Insert  line  at  cursor  position 

Delete  current  tine 

Scroll  text  downward 

Move  cursor  to  top  or  bottom  of 

screen 

Delete  character  at  cursor 

Delete  word  or  series  of  spaces 

Scroll  text  upward 

Delete  to  end  of  current  line 


Extended  Commands  (precede  by  pressing 
and  releasing  ESC): 

B  Move  cursor  to 

bottom  of  file 
E/stringl/ string!/      Exchange  stringl  to 

string! 
EQ/ stringl /string!/   Exchange,  but  query 

first 
7 /string/  Find  siring 

J  Join  current  line  with 

next  line 
Q  Quit  without  saving 

text 
T  Move  cursor  to  top 

of  file 
X  Exit,  save  text 


echo  "Workbench  disk.  Release  1.1" 

echo  "  " 

echo  "Use  Preferences  tool  to  set  dale" 

echo  "  " 

LoadWb 

endcli  >  nil: 

Since  this  message  appears  ev- 
ery time  you  start  up  your  disk,  you 
may  want  to  change  the  ECHO 
statements  for  a  personalized  mes- 
sage. Likewise,  if  you'd  rather  use 
AmigaDOS  instead  of  the  Work- 
bench, delete  the  last  two  lines.  The 
">  nil:"  sequence  makes  Amiga- 
DOS  throw  away  the  output  of  a 
command;  here,  the  message  "CLl 
task  1  ending." 

Startup-sequence  is  a  good 
place  to  put  personalized  com- 
mands. For  example,  if  you  like  to 
keep  your  command  directory  in 
RAM  for  speed  and  convenience, 
you  could  insert  these  lines  above 
the  LoadWb  line: 

makedir  ram:c 

copy  c  to  ram:c  all  quiet 

cd  ram:c 

This  copies  all  of  the  Amiga- 
DOS  commands  from  the  C  subdir- 
ectory on  the  floppy  disk  into  a  C 
subdirectory  on  the  RAM  disk.  It 
also  changes  the  current  directory 
to  the  C  subdirectory  in  RAM:,  so 
any  AmigaDOS  commands  you 
type  from  then  on  will  be  loaded 


84     COMPUTEI      April  1966 


from  RAM:  instead  of  from  the 
floppy.  In  effect,  this  turns  Amiga- 
DOS  into  a  memory-resident  DOS, 
with  all  commands  intrinsic  instead 
of  extrinsic.  AmigaDOS  responds 
much  faster  this  way.  However, 
this  also  uses  up  quite  a  bit  of  mem- 
ory, so  you  may  want  to  copy  only 
the  commands  you  use  frequently. 
Another  useful  startup  action 
is  to  set  the  date  and  time.  You  can 
always  do  this  with  the  Preferences 
tool  or  by  opening  a  CLI  and  using 
the  DATE  command.  However,  it 
can  be  more  convenient  to  enter  the 
date  when  you  first  turn  on  your 
Amiga,  allowing  all  files  subse- 
quently saved  to  be  stamped  with 
the  current  date  and  time.  Just  in- 
sert this  line  into  startup-sequence: 

date? 

The  ?  operator  can  be  used  in 
place  of  the  parameter  of  a  com- 
mand. Instead  of  specifying  the 
date,  ?  prompts  the  user  to  enter  the 
date.  It  also  displays  the  template 
for  the  date  command  (TIME,DATE, 
TO  =  VER/K:).  If  you  like,  use 
ECHO  to  display  your  own  prompt, 
and  >  nil:  to  discard  the  template: 

echo  "Please  enter  the  date  and  time." 
echo  "DD-MMM-YY  HH:MM:SS" 
date  >  nil:  7 

From  then  on,  whenever  you  boot 
up  from  this  disk,  you'll  respond  to 
the  prompt  by  typing  something 
like  this: 
27-jan-86  15:12 

which  automatically  sets  the  sys- 
tem clock. 

Variable  Parameters 

You  can  also  send  special  options  to 
your  batch  file.  You  enter  these  op- 
tions on  the  command  line  along 
with  the  EXECUTE  command.  Just 
as  with  variables  in  BASIC,  you  can 
manipulate  these  parameters  sym- 
bolically. 

Let's  say  you'd  like  a  batch  file 
that  gives  you  complete  infor- 
mation on  a  file.  It  uses  LIST  to 
display  the  information  about  the 
file,  and  TYPE  to  display  the  file. 
You  would  use  a  command  like  EX- 
ECUTE SHOW  RODEO  to  display 
the  file  RODEO.  Use  ED  SHOW  or 
COPY  *  TO  SHOW  to  create  this 
batch  file: 

.KEY  name 
LIST  <name> 
TYPE  <name> 


.KEY  (don't  forget  the  leading 
period)  sets  up  a  name  for  substitu- 
tion text.  Whatever  you  typed  on 
the  same  line  with  EXECUTE  is 
substituted  wherever  you  use 
<name>.  You  must  use  the  angular 
brackets,  or  LIST  and  TYPE  would 
look  literally  for  the  file  "name." 

After  creating  this  batch  file, 
type  this  at  an  AmigaDOS  prompt: 

EXECUTE  SHOW  S/STARTUP- 
SEQUENCE 

The  result  is  the  same  as  if  you  had 
typed  LIST  S/STARTUP- 
SEQUENCE  followed  by  TYPE 
S/STARTUP-SEQUENCE. 

Other  AmigaDOS  commands 
let  you  check  to  see  if  the  user  has 
entered  a  specific  string  and  check 
to  see  if  a  file  exists.  To  prevent  an 
error  message,  we  can  check  to  see 
if  the  file  exists  before  we  use  LIST 
and  TYPE: 

.KEY  name 

IF  EXISTS  <name> 

LIST  <name> 

TYPE  <name> 

ELSE 

ECHO  "<namc>  does  not  exist!" 

ENDIF 

Notice  the  use  of  IF,  ELSE,  and 
ENDIE  Looks  like  Amiga  BASIC, 
doesn't  it?  In  fact,  the  AmigaDOS 
IF-ELSE-END  IF  commands  func- 
tion very  much  like  BASIC'S.  When 
the  IF  condition  is  true,  AmigaDOS 
executes  the  following  statements; 
otherwise  the  following  statements 
are  ignored.  ELSE  executes  the 
statements  following  it  only  if  the 
preceding  IF  was  false.  ENDIF  can- 
cels conditional  processing  and  re- 
turns to  executing  all  commands. 

Any  Parameters  Missing? 

Here's  how  to  use  the  IF  EQ  option 
to  test  for  the  existence  of  a  com- 
mand-line parameter.  If  there  is  no 
parameter,  <name>  is  null,  so 
"<name>z"  is  simply  "z".  We  use 
NOT  to  reverse  the  test.  If  the  pa- 
rameter "<name>z"  is  NOT  equal 
to  "z",  then  we  must  have  a  com- 
mand line  parameter.  (We  can't  just 
test  IF  <name>  NOT  EQ  "",  since 
EQ  wants  two  parameters,  and  the 
null  string  ""  is  not  a  parameter, 
but  the  lack  of  one.) 

.KEY  name 

IF  <name>2  NOT  EQ  z 

LIST  <name> 

TYPE  <name> 

ELSE 

ECHO  "You  didn't  give  me  anything  to 


SHOW." 
ENDIF 

Although  you  can't  use  leading 
spaces  in  the  actual  batch  file,  it's 
easier  to  follow  the  IF-ENDIF  struc- 
tures when  you  use  indentation. 
Just  don't  type  in  the  leading 
spaces.  This  version  of  the  batch  file 
SHOW  checks  both  for  the  exis- 
tence of  the  filename  and  for  the 
presence  of  the  filename  parameter: 

.KEY  name 

IF  <name>z  NOT  EQ  z 
IF  EXISTS  <name> 
LIST  <name> 
TYPE  <name> 
ELSE 

ECHO  "<name>  does  not  exist!" 
ENDIF 
ELSE 

ECHO  "You  didn't  give  me  anything 
to  SHOW." 
ENDIF 

You  can  use  more  than  one 
parameter  in  the  .KEY  statement, 
just  as  many  commands,  such  as 
DATE,  accept  two  inputs. 

If  the  user  doesn't  enter  any- 
thing for  the  parameter,  you  can 
assign  a  default  value  using  either 
.DEF  or  $,  If  you  use  .DEF,  the 
default  phrase  is  used  throughout 
the  batch  file.  In  this  example, 
SHOW  displays  itself  if  you  don't 
give  it  a  filename. 

.KEY  name 
.DEF  s/show 
LIST  <name> 
TYPE  <name> 

You  can  use  $  to  substitute  a 
default  value  only  for  the  current 
substitution.  Several  batch  com- 
mands may  use  the  value  in  differ- 
ent ways,  so  each  command  may 
have  its  own  default  value.  In  the 
following  example,  LIST  displays 
the  whole  directory  if  <name>  is 
null  but  TYPE  types  the  file 
"TEMP"  if  <name>  is  null: 

.KEY  name 
LIST  <name> 
TYPE  <name$lemp> 

Labels  And  Branching 

You  can  jump  forward  to  a  label 
with  the  SKIP  command.  You'd 
typically  use  SKIP  along  with  an  IF 
condition  if  you  want  to  skip  over  a 
block  of  statements  that  shouldn't 
be  executed  if  the  IF  was  true.  You 
declare  the  label  with  LAB.  SKIP 
can't  skip  backward,  only  forward 
to  a  LAB  statement.  You  can 
usually  use  IF  and  ELSE  to  accom- 
plish the  same  thing,  though. 


April  1986     COMPUm     85 


.KEY  name 

IF  exists  <naine> 

TYPE  <naine> 

SKIP  ToMyLou 

ENDIF 

ECHO  "<name>  doesn't  exist." 

LAB  ToMyLou 

echo  "Finished." 

An  EXECUTE  command  can 
execute  another  batch  file,  or  even 
itself.  This  permits  backward  loop- 
ing to  some  degree.  Nested  batch 
files  can  be  quite  handy.  You  can 
test  and  debug  individual  batch 
programs,  then  execute  them  to- 
gether from  a  master  execute  script: 

EXECUTE  Greeting 
EXECUTE  GetDate 
EXECUTE  Assignments 

The  individual  files  could 
themselves  contain  other  EXECUTE 
references. 

ASSIGNing  Shorfcufs 

If  you're  using  EXECUTE  a  lot,  you 
may  grow  weary  of  typing  it.  You 
can  always  rename  EXECUTE  to 
something  short  like  x,  but  other 
batch  programs  may  contain  EXE- 
CUTE statements,  requiring  you  to 
rename  it  back.  Instead,  you  can 
use  the  ASSIGN  command  to  as- 
sign any  filename  to  a  device  name. 

ASSIGN  x;  sys:c/EXECUTE 

You  can  now  use  x:  whenever 

you  want  to  use  the  EXECUTE 
command,  (The  prefix  sys:c/  makes 
sure  that  EXECUTE  can  be  found 
no  matter  what  directory  you're  in.) 

The  device  name  you  create 
should  not  conflict  with  an  existing 
one.  To  get  a  list  of  the  current 
assignments,  just  type  ASSIGN. 
You  may  want  to  ASSIGN  d:  c:list 
for  a  convenient  and  quick  short- 
hand for  directories  (c:  is  synony- 
mous with  the  C  directory).  You 
can  then  just  type  d:  to  get  a  LIST. 

ASSIGN  can  be  so  handy  for 
this  kind  of  thing  that  you'll  proba- 
bly want  to  include  your  own  se- 
quence of  ASSIGN  commands 
within  startup-sequence.  If  you  put 
your  ASSIGN  statement  within 
startup-sequence,  you'll  get  these 
assignments  for  every  session.  Just 
remember  that  ASSIGN  can  only 
be  used  to  attach  a  device  name  to  a 
particular  filename.  ASSIGN  d: 
"c:list  quick"  doesn't  seem  to  work. 
Although  LIST  is  a  filename  in  the  c 
directory,  the  "quick"  parameter  is 
not  part  of  the  filename.  © 


Apple 
Disk  Duper 


Jason  Coleman 


Here's  a  program  that  lets  you  dupli- 
cate Apple  disks  quickly  and  conve- 
niently. Though  it  can  copy  disks 
formatted  for  either  DOS  3.3  or  Pro- 
DOS,  it  must  be  run  with  ProDOS.  It 
also  requires  128K  RAM. 


Everyone  knows  the  value  of  back- 
ing up  disks.  But  how  many  of  us 
take  the  time  to  make  archive 
copies  of  important  disks  on  a  regu- 
lar basis?  "Apple  Disk  Duper"  sim- 
plifies the  process  by  making  it 
possible  to  copy  an  entire  disk  in 
only  two  passes.  It  works  on  one-  or 
two- drive  systems  with  at  least 
128K  RAM. 

After  typing  in  the  program 
and  saving  a  copy,  simply  run  it 
and  follow  the  instructions  on  the 
screen.  Apple  Disk  Duper  prompts 
you  every  step  of  the  way. 

Although  the  program  runs 
only  under  ProDOS,  it  can  copy 
DOS  3.3  disks  as  well  as  ProDOS 
disks.  It  works  with  any  Apple  Disk 
Il-compatible  drive,  but  not  with 
the  new  SVi-inch  UniDisk. 

Apple  Disk  Duper 

For  instnjctions  on  entering  this  listing,  please 
refer  to  "COMPUTEI's  Guide  to  Typing  In 
Programs"  in  this  issue  of  COMPutei. 

74  100  FOR  X  =  768  TO  783:  READ 

Yt  POKE  X,Y:  MEXT 
Sfl  110  DATA  32,0,  191,  129,"?,  3,  176 

,249,96,3,96,0,32,0,0,0,0 

59  120  TEXT  :  HOME 

47  130  VTAB  12:  HTAB  12:  PRINT  " 

DISK  DUPLICATOR" 
«ft  140  VTAB  20:  HTAB  9:  PRINT  " ( 

HIT  ANY  KEY  TO  BEBIN)";! 

POKE  -  1636B,0:  GET  ST» 


4E  150  HOME 

IC  160  VTAB  12:  INPUT  "ENTER  NUM 

BER  OF  DRIVES: ";ND»:ND  - 

VAL  (ND«) 
CB  170  IF  ND  <  >  1  AND  ND  <  >  2 

THEN  390 
Fl  1B0  HOME  :  VTAB  12:  PRINT  "PU 

T  SOURCE  DISK  IN  DRIVE  1" 
7(1  190  IF  ND  =  2  THEN  VTAB  17:  P 

RINT  "PUT  DESTINATION  DIS 

K    IN  DR1VE2" 
Dt  200  VTAB  20:  POKE  -  1636B,0: 

PRINT  "PRESS  ANY  KEY  TD  M 

AKE  COPY.":  GET  AK* 
91  210  FB  =  0:MX  =  3 
91  220  FDR  N  =  1  TD  MX 
C4  230  POKE  771,  12B 
11  240  POKE  700,32:  POKE  778,96 
IE  250  FOR  I  =  FB  TO  FB  +  55 
25  260  P2  =  INT  (I  /  256):  PI  =  I 

-  256  «  P2 
OE  270  POKE  7B2,P2:  POKE  78 J, PI 
51  2B0  CALL  768:  POKE  780,  PEEK 

(780)  +  2:  NEXT  I 
n   290  IF  N  <  ^fX  THEN  PRINT  CHR* 
(4)"BSAVE/RAM/C0PY"N",A* 

2000,L»6FFF":FB  =  FB  +  56 
42  300  NEXT  N 
29  310  IF  ND  =  1  THEN  VTAB  12:  P 

RINT  "PUT  DESTINATION  DIS 

K  IN  DRIVE  1":  BET  AK» 
ED  320  FOR  N  =  MX  TG  1  STEP  -  1 
F9  330  POKE  771,129:  POKE  780,14 

2 
1!  340  IF  ND  =  2  THEN  POKE  778,2 

24 
i»  350  IF  N  <  MX  THEN  PRINT  CHR* 

(4) "BLOAD/RAM/CDPY";N 
79  360  FOR  I  =  FB  +  55  TO  FB  STE 

P  -  1:P2  =  INT  CI  /  256) s 

PI  =  I  -  256  «  P2 
DF  370  POKE  782, P2:  POKE  781, PI 
7!  380  CALL  768:  POKE  780,  PEEK 

(780)  -  2-  NEXT  I 
»B  390  FB  =  FB  -  56 
4J  400  NEXT  N 
IB  410  IF  MX  =  2  THEN  440 
bi   420  MX  =  2:FB  =  168:  IF  ND  = 

1  THEN  VTAB  12:  PRINT  "PU 

T  SOURCE  DISK  IN  DRIVE  1 
":  GET  AK* 
14  430  GOTO  220 
17  440  HOME  ;  VTAB  12:  HTAB  15: 

INVERSE  :  PRINT  "COPY  COM 

PLETE":  NORMAL  :  END    © 


S6     COMPUTB     April  1986 


Smooth-Scrolling 

Billboards 

For  IBM 


Do  you  want  to  leave  a  message  on 
your  computer  screen  that's  sure  to  be 
noticed?  Or  would  you  like  to  create 
an  eye-catching  display  in  a  shop 
window  that  effectively  communi- 
cates your  message  to  the  public?  The 
programs  presented  here  let  you  easi- 
ly produce  smooth-scrolling  bill- 
boards on  the  40-  or  80-column  screen 
of  your  IBM  PC  (with  color /graphics 
adapter  and  BASICA)  or  PCjr  (with 
Cartridge  BASIC). 


To  be  really  effective,  a  billboard 
program  must  smoothly  scroll  its 
message  across  the  screen.  Pro- 
grams that  jerk  the  letters  across  the 
screen  are  very  hard  on  the  eyes. 
The  speed  necessary  for  smooth 
scrolling  can  be  achieved  only  by 
avoiding  the  routines  in  the  BIOS 
(Basic  Input/Output  System)  and 
v^riting  directly  to  video  memory. 
However,  this  can  cause  a  problem 
when  text  is  used  in  graphics 
modes — writing  directly  to  video 
memory  disrupts  the  character  gen- 
erator. As  a  result,  small  flickering 
lines  appear  on  the  screen  (for  more 
details,  see  COMPUTE!  Books' 
Mapping  the  IBM  PC  and  PCjr, 
pages  193-198). 

This  problem  can  be  solved  by 
writing  to  video  memory  only  dur- 
ing the  time  when  the  monitor's 
raster  beam  is  in  vertical  retrace, 
while  the  display  is  idle.  On  some 
IBM-compatible    computers    (the 


Paul  W.  Carlson 


Compaq,  for  example),  the  problem 
can  be  avoided  by  writing  to  an 
inactive  page  of  video  memory  and 
then  making  it  the  active  page.  The 
programs  following  this  article 
make  use  of  both  methods. 

With  some  computer  and 
graphics  card  combinations,  a  few 
flickering  lines  remain  at  the  very 
top  of  the  screen  when  running  the 
80-column  billboard  program. 
These  could  have  been  eliminated, 
but  only  at  the  expense  of  speed 
and  smoothness.  About  300  charac- 
ters can  be  written  to  video  memory 
during  the  vertical  retrace  period, 
and  640  characters  (eight  lines  of 
80)  need  to  be  written  for  each 
screen  update.  Therefore,  to  elimi- 
nate the  flickering  lines  entirely, 
we'd  have  to  wait  for  three  vertical 
retrace  periods.  These  lines  are  less 
objectionable  than  the  loss  of 
smoothness  caused  by  waiting  for 
an  extra  retrace  period. 

Creating  Billboards 

Program  1  is  for  creating  billboards 
on  the  40-column  screen,  and  Pro- 
gram 2  is  for  the  80-column  screen. 
Both  programs  are  extremely  easy 
to  use.  After  typing  RUN,  simply 
enter  any  text  string  at  the  prompt. 
If  you  want  your  message  to  con- 
tain a  comma,  enclose  the  entire 
text  string  in  double  quotes.  When 
you  press  ENTER,  the  message  en- 
larges and  begins  scrolling.  It  can  be 
stopped  at  any  time  by  pressing  the 
Q  key. 


The  programs  can  be  custom- 
ized to  suit  your  taste.  The  charac- 
ter that  forms  the  large  letters  can 
be  changed  from  a  solid  block  to 
another  character  by  changing  the 
DATA  statement  identified  in  the 
listing.  For  example,  to  change  the 
solid  block  to  a  smiling  face,  change 
the  DB  to  02  in  line  300.  You  can 
also  modify  the  scrolling  speed  by 
changing  the  two  bytes  identified  in 
the  listing  (the  second  byte  has  256 
times  the  effect  of  the  first  byte). 

How  It  Works 

The  techniques  used  here  can  be 
applied  to  any  program  that  must 
update  a  text  screen  very  rapidly,  so 
a  brief  description  of  the  steps  in- 
volved may  be  useful. 

1.  Set  up  a  buffer  in  memory  equal 
in  size  to  the  block  of  characters  to 
be  written  to  the  screen  (8  X  80  for 
the  80-column  billboard). 

2.  For  each  input  character,  access 
the  character  PEL  map  in  ROM  at 
FFA6:OE.  By  columns,  depending 
on  whether  or  not  a  bit  is  set,  put 
the  code  for  a  solid  block  or  a  space 
into  the  rightmost  column  of  the 
buffer  array. 

3.  When  a  column  is  complete, 
scroll  the  whole  buffer  one  column 
to  the  left, 

4.  Wait  for  the  beginning  of  a  verti- 
cal retrace  period,  then  copy  the 
buffer  to  the  inactive  screen. 

5.  Make  the  inactive  screen  the  ac- 
tive screen. 


April  1986     COMPimi      87 


6,  Do  the  next  column  in  step  2. 

sc 

420    DATA    74,FB,F3,A5,EB,04,EB 
,8B 

HE   340 

DATA    36,0A,41,aD,3E,0a,41 

,B9 

11 

430    DATA   EB,AA,B9,A0,00,BA,DA 

CP   350 

DATA    9e,00,F3,A4,46,46,47 

For  instmctions  on  entering  these  Bstings, 

,03 

,47 

please  refer  to  "COMPUTEI's  Guide  to  Typing 

w 

440    DATA    EC,A8,08,75,FB,EC,Aa 

PJ  360 

DATA   48,75,F4,A0,08,46,:^4 

In  Programs"  In  this  issue  of  compute  i. 

,08 

,01 

tJ 

450    DATA    74,FB,F3,A5,5a,CD, 10 

JD   370 

DATA    A2,0a,46,B4,05,50,AB 

Program  1 :  40-Column 
Billboards 

,B9 

,01 

FF 

460    '    The    following    two    value 
s    are    the 

GK   380 

DATA    75, 05,88, 00, Ba, £8,03 
,B8 

EK   10    '       Forty    Column    Scrolling 

Bi  1  Iboard 
JO   20    ' 
LJ  30    '       Press    ttie    "G"    key    to    qu 

it. 
Jfl  40    ' 
01   50    DEF    SEG:  CLEAR,  &H3FF0:N=&H4 

FJ 

470    '    time   delay    constant    in 
the    order 

HH  390 

DATA    00, 69, BE, C0, 69,40,01 

,BF 

KH 

480    '     least    sig.    byte,     mast    s 

NG  400 

DATA    60, 04, 80,36, 0a, 41, BA 

CP 

ig.    byte. 
490    DATA   01,00 

0F  410 

,DA 

DATA    03,EC,AB,0a,75,FB,EC 

ss 

500    DATA    E2,FE,59,E2,DF,07,5E 

,AB 

,B4 

KO  420 

DATA    0a,74,FB,F3,A5,EB,04 

60A 
HI.   60   FOR    J  =  0    TO    249:  READ    At 

flS 

510    DATA    06,B2,FF,CD,21,3C,7l 

,EB 

,74 

HE  430 

DATA   aA,EB,AA,B9,40,01,BA 

SI   70    POKE    N+J,  VAL("&H"+fi*)  :  NEXT 

(IN 

520    DATA    06,3C,51,74,02,EB,CF 

,DA 

FS   80    KEY    OFF:  CLS:  SCREEN    0:  WIDTH 

,86 

El  440 

DATA   03,EC,AB,0a,75,FB,EC 

80 

FP 

530    DATA    ES, 07,88,00,05, CD, 10 

,AB 

6L   90    INPUT"  Text    string";  T«:  T«=T 

,CB 

FI   450 

DATA   09,74,FB,F3,A5,58,CO 
,  1^ 

*+"       " 

FF    100    N=tiH4000:K=LEN(Tt)  :FDR    J  = 

1    TO    K 
LP    110    POKE    N,ASC<MID«tT»,  J,  J)  )  : 

Program  2:  80-Coiumn 
Billboards 

AF  460 
FH  470 

PL   480 

DATA    B9 

'     The    following    two    value 

s    are   the 

N=N+1 

KF 

10    '       Eighty    Column    Scrolling 

*  time    delay    constant    in 
the    order 

*  least    sig.    byte,    most    s 

QA    120    NEXT:  POKE    N,  0:  CLSs  WIDTH    4 
0 

JO 
LJ 

Billboard 
20    ' 
30    '       Press    the    "G"    key    to    qu 

it. 
40    ' 

LJ   490 

JL    130    LOCATE,  ,0:N=!<H460A:  CALL    N 
CC   140   WIDTH   a0:CLS!KeY    QN:END 

BB   500 

ig.    byte. 
DATA    01,00 

E6   150    DATA    06,BB,EC,  8C,  Da,BE,C0 

JA 

BI   510 

DATA    E2,FE,59,E2,DF,07,3E 
,B4 

DATA    06,B2,FF,CD,21,3C,71 
,74 

DATA    06,3C,51,74,02,EB,CF 

,B9 
EH    160   DATA   80,  02,  SD,  3E,  0B,  41 ,  IE 

DI 

50   DEF    SE6:  CLEAR,  !<H3FF0:N=&H4 
60A 

BI   520 

.BB 
KK    170   DATA    00,  BB,  SE,  08,  BE,  30,  02 

HC 
SB 

60   FOR    3=0    TO    250: READ    A* 

70   POKE    N+J,VAL("8iH"+A«)  :NEXT 

NP  530 

,F3 
B8    180    DATA    fl4,  IF,  B8,  A6,  FF,  8E,C0 

Fft 

80    KEY    OFF: CLS: SCREEN    0:W1DTH 
80 

FB  540 

J  at? 

DATA    E5,07,BB,00,05,CO,  10 

,80 

GL 

90    INPUT"Text    string"; T«: Tt=T 

63    190    DATA    36,  00,  40,  BA,  IC,  46,  60 
JK   200   DATA    00,74,F4,B7,00,O1,E3 

4i-t-"           ■■                                                                                                » 

FF 

100    N=J<H4000:K=LEN(T»>:FOR   J  = 
1    TO    K 

,D1 

LP 

110    POKE    N,ASC(mD«(T«,J,l)  ): 

U   210   DATA    E3,D1,E3,B3,C3,0E,B9 

,08 

HD 

N=N+1 
120   NEXT: POKE    N,0:CLS 

COMPUTE! 

FK   220   DATA    00,  33,  FF,  26,  8A,  07,  88 

JL 

130   LOCATE,, 0:N=&H460A: CALL    N 

TOLL  FREE 

,85 

CC 

140   WIDTH   80: CLS: KEY    ON: END 

Subscription 

GJ  230   DATA   00, 41 ,  47,  43,  E2,  F5,  56 

EG 

1S0   DATA    06,BB,EC,BC,D8,8E,C0 

,06 

,B9 

Order  Line 

Bit  240   DATA    B9,  09,  00,  51 ,  33,  FF,  B9 

9K 

160    DATA    00,05,BD,3E,08,41, IE 

^^F  ■    ^^H  ^^  ■         ^va  ■   ■  ^^ 

,08 

,B8 

1 

-800-247-5470 

FI   250   DATA   00,BB,4E,  00,  00,  A5,00 

,41 

CP 

170    DATA    00,BB,BE,Da,BE,60,04 
,F3 

InIA  1-S00-532-1272 

K  260    DATA    72, 04, B0, 20, EB, 02, B0 

IF  270    '    The    following    value    is 
the 

!I 
GG 

180    DATA   A4, 1F,BB,A6,FF,8E,C0 

,80 
190    DATA    36,00,40,BA,1C,46,80     " 

JF  2B0    '    ASCII    code    of    character 

that 

JK 

,FB 
200    DATA    00,74,F4,B7,00,D1,E3 

■  nil 

llllll  state-of-the-art"' 

HE  290    '    forms    the    large    text. 
HP  300    DATA    DB 

JH  310    DATA    Ba,e7,0a,41,83,C3,50 
p47 

U 

FK 

,D1 
210    DATA   E3,D1,E3,83,C3,0E,B9 

.08 
220   DATA    00,33,FF,26,aA,07,88 

■  OS     1         MAGNETIC  MEDIA 

1       [.          1      5V4  "  DISKETTES     1 

^ 

^                                •  with  Hub  Ring: 

M  320    DATA    E2, EA, EB, 02, EB, B5, 8C 

,85 

tO 

1^                          •  Write  Prolecl  Tabs 

,DB 

EJ 

230   DATA    00,41,47,43,E2,FS,S6 

M 

^^1    ^^^^             •  Envelopes 
t^^Mr^^            •  Ltser  ID  Labels 

Cf  330   DATA    BE,C3,FC,BB,0a,00,aD 

,06 

m 

"^^V             •  In  Factory  Sealed 

,36 

K 

240    DATA    B9,09,00,51,33,FF,B9 

^^F               Poly  Packs  at  10 

£K  340   DATA    0A,  41,  BD,3E,  08,41,  B9 

,08 

(YOU  GET  EVEfiYTHING  BUT  THE  BOX] 

r               »                F               r  ^  ^  r               r 

,4E 

NK 
OF 

250    DATA    00,BB,9E,00,D0,A5,00 

,41 
260    DATA    72,04,B0,20,EB,02,B0 
270    '    The   following    value    is 

the 

Prices  are  per  Disk 

FC  350    DATA   00,F3,A4,  46,46,47,  47 

.48 
NF  360    DATA    75,  F4,  A0,  08,  46,34,01 

,A2 

OTY 

50 

100 

500 

1000 

SSDD 

.59 

.56 

.52 

.49 

DSDD 

.64 

.61 

.57 

.54 

LiDrary  Case  Holds  15  Diskeltes  Only   ,  ,  SI  001 

HI    370    DATA    0B,46,B4,  05,  50,  AB,  01 

JF 

2B0    '    ASCII    code    of    character 

P 

LS50C  S&M 

,75 

that 

The  100  File,  Only  ,  ,  . .  S10  95!  plus  S2  00  S  &  H 
^00•l  ERROR  FREE  -  LIFETIME  WARRANTY 

SO   3B0    DATA    05,  B8,  00,  88,  EB,  03,  S8 

HE 

290    '    forms    the    large    text. 

Mm 

order   S25.00    Add    10%  lor  less  than  50 

,B0 

HP 

300    DATA    DB 

diskettes  Shipping  and  Handing;  S-i  QO  per  100 

6E   390    DATA    BB,  BE,  C0,  B9,  A0,  00,  BF 

BN 

310    DATA    8a,a7,0B,41,ai,C3,A0 

diskettes   fleducea  shipping  tor  larger  quanli- 
lies  CO  D  add  S4  00  Cash  or  certitied  ctieck 

.30 

,00 

^P                        coo                        — ^— 

HK   400    DATA   02,  BO,  36,  08,  41 ,  BA,  DA 

JO 

320    DATA    47,E2,E9,EB,02,EB,B4 

,03 

,BC 

Precision  Data  Products 

or  410   DATA    EC,fl8,08,75,FB,EC,Aa 

SE 

330   DATA    DB, BE, C3,FC, 68,08,00 

P 

I'.a  Bi><  S,W7.  (irand  Kapidv  Ml  415111 

,08 

,80 

(hlft)452-.1457  •  Mifhiiijn  l-W)(l^(..13.:4ftk 

^    '" 

OuLsiilt  Miihiniin  l-lilMl-:5H-IK>;i( 

86     COMPUTH     Apfll  1986 


Commodore  64 
Screen  Genie 


This  thoughtfully  designed  utility 
helps  you  draw  complete  screens 
using  character  graphics.  When 
you're  finished,  it  writes  a  complete 
BASIC  routine  to  recreate  the  graph- 
ics screen.  The  program  runs  on  any 
Commodore  64  (or  128  in  64  mode) 
with  either  disk  or  tape. 


"Commodore  64  Screen  Genie"  is 
both  a  screen  editor  and  a  program 
generator.  With  it,  you  can  quickly 
and  easily  draw  backgrounds  for 
games,  colorful  title  screens,  or  just 
pages  of  instructions.  It  offers  a 
wealth  of  editing  commands  for  de- 
signing a  text  or  graphics  character 
screen  in  normal,  multicolor,  or  ex- 
tended background  mode.  Then,  al- 
most instantly,  it  can  write  a  BASIC 
routine  to  recreate  that  screen.  This 
new  routine  is  merged  with  what- 
ever program  is  in  memory.  Since 
Screen  Genie  takes  up  no  BASIC 
program  space,  it  can  be  used  with 
many  other  utilities  such  as  the 
DOS  Wedge,  "TurboDisk,"  or 
"MetaBASIC," 

Screen  Genie  is  written  entire- 
ly in  machine  language,  so  you'll 
need  to  enter  it  with  the  MIX  ma- 
chine language  entry  program 
found  elsewhere  in  this  issue.  Fol- 
low the  MLX  instructions  closely; 
here  are  the  addresses  you'll  need 
for  MLX: 

Starting  address:  0801 
Ending  address;  IDIO 

Built-in  Help  Screen 

Screen  Genie  loads  and  runs  like  a 
normal  BASIC  program.  Once  you 
run   it,   however,   the   program 


James  A.  Ledger 


breaks  into  several  modules  which 
move  to  various  places,  leaving  the 
BASIC  program  space  completely 
free  (more  on  this  process  later). 

The  first  thing  you'll  see  is  a 
help  screen  showing  all  of  the 
Screen  Genie  commands.  Fortu- 
nately, you  don't  have  to  memorize 
all  the  commands  shown  here. 
Since  the  help  screen  is  always 
available,  the  only  key  sequence 
you  need  to  remember  is  CTRL-H 
(hold  down  CTRL  and  press  H). 
Selecting  any  command  from  the 
help  screen  returns  you  to  the  work 
screen  and  performs  that  com- 
mand. Pressing  any  other  key  sim- 
ply returns  you  to  the  work  screen. 
Of  course,  all  of  the  commands  are 
also  available  directly  from  the 
work  screen. 

The  help  screen  serves  another 
purpose  by  indicating  which  modes 
and  cursor  functions  are  selected. 
For  instance,  if  you  select  the  Paint 
cursor  function  by  pressing  the  f3 
function  key,  a  white  arrow  appears 
next  to  that  option  on  the  help 
screen. 

Once  you  enter  the  work 
screen,  almost  all  of  the  keys  work 
as  they  normally  do — text  and 
graphics  characters  can  be  typed  in 
whatever  color  you  like.  However, 
you  may  not  type  a  quotation  mark, 
insert  a  character  by  pressing 
SHIFT-INST/DEL,  or  break  out  of 
the  program  by  pressing  RUN/ 
STOP-RESTORE.  The  delete  key 
(DEL)  is  not  disabled,  but  works  in 
a  slightly  different  way:  It  erases 
the  character  at  the  cursor  position 
and  moves  the  cursor  one  space 
left,  but  it  doesn't  drag  any  charac- 
ters on  the  right  with  it. 


Finally,  to  prevent  the  screen 
from  scrolling,  you  are  not  allowed 
to  type  anything  in  the  bottom  right 
corner.  Instead,  this  space  is  used  to 
show  the  current  color  for  the  char- 
acters you're  typing.  That's  a  handy 
feature,  since  the  cursor  itself  is  no 
longer  a  blinking  box.  Instead,  it's  a 
blinking  black  and  white  underline. 

Immediate  Commands 

Screen  Genie's  commands  are  di- 
vided into  four  groups:  immediate 
commands,  cursor  functions,  screen 
modes,  and  color  selection.  Here  is 
an  explanation  of  the  immediate 
commands: 

CTRL-H  (Help).  Display  help 
screen. 

CTRL-T  (Top  clear).  Clear  from  the 
top  of  the  screen  to  the  current  cur- 
sor position. 

CTRL-B  (Bottom  clear).  Clear  from 
the  bottom  of  the  screen  to  the  cur- 
rent cursor  position. 
CTRL-M  (Move).  Move  a  block  of 
characters  from  one  screen  location 
to  another.  Before  you  can  move  a 
block,  you  must  first  define  its 
upper-left  and  lower-right  corners. 
Press  CTRL-M,  then  place  the  cur- 
sor on  the  upper-left  corner  of  the 
block  you  want  to  move,  and  press 
RETURN.  Move  the  cursor  to  the 
lower  right  corner  of  the  block,  then 
press  RETURN  a  second  time.  Now 
the  block  is  defined.  To  move  it 
elsewhere  on  the  screen,  move  the 
cursor  to  the  place  where  you  want 
to  put  the  upper-left  corner  of  the 
new  block,  then  press  RETURN. 
The  contents  of  the  new  area  are 
replaced  by  the  contents  of  the  de- 
fined block  (note  that  the  original 


April  1986     COMPOTE!      69 


area  is  not  disturbed).  The  Move 
command  does  not  permit  you  to 
place  the  new  block  in  any  position 
that  would  overlap  a  screen  border; 
all  of  the  new  block  must  fit  inside 
the  screen. 

CTRL-Z  (Memorize).  Memorize 
the  current  screen  by  saving  its  con- 
tents in  a  memory  buffer.  A  saved 
screen  can  be  restored  with  CTRL-O. 
CTRL-O  (Oops).  Swap  the  current 
screen  with  whatever  is  stored  in 
the  buffer.  Pressing  it  again  swaps  it 
back.  Besides  restoring  the  screen 
after  a  manual  save  (CTRL-Z),  this 
command  can  also  undo  any  screen 
clear  or  move  command. 

CTRL-P  (Program).  Write  a  series 
of  BASIC  program  lines  to  recreate 
the  screen  you've  designed.  These 
lines,  beginning  with  the  line  num- 
ber you  choose,  are  merged  with 
whatever  BASIC  program  is  in 
memory,  if  any.  This  feature  per- 
forms a  true  merge,  rather  than 
simply  tacking  program  lines  onto 
the  end  of  the  current  program. 
However,  it  does  not  replace  any 
existing  lines.  If  the  merge  opera- 
tion would  replace  an  existing  pro- 
gram line.  Screen  Genie  displays  a 
message  and  gives  you  a  chance  to 
choose  a  new  beginning  line 
number. 

The  Program  option  also  lets 
you  add  a  line  to  set  specific  back- 
ground and  border  colors.  Like- 
wise, if  you're  in  extended 
background  or  multicolor  mode 
when  you  choose  this  feature, 
you're  given  the  option  of  adding 
lines  that  perform  the  setup  for  the 
current  mode. 

Finally,  you  have  the  option  of 
adding  a  program  line  that  waits  for 
the  user  to  press  any  key.  This  is 
useful  for  multiple  pages  of  instruc- 
tions, and  so  forth.  Just  be  sure  to 
include  a  prompt  such  as  PRESS 
ANY  KEY  TO  CONTINUE  some- 
where on  the  screen.  If  you  choose 
this  option  while  in  extended  back- 
ground or  multicolor  mode,  you 
may  also  add  a  line  to  turn  the 
mode  off  after  a  key  is  pressed. 

The  default  setting  for  all  Pro- 
gram options  is  yes.  Pressing  any 
key  other  than  Y  or  RETURN  at  the 
prompt  selects  no.  If  you  have  two 
or  more  sequential  screens  that  use 
the  same  colors  or  mode,  then  you 
need  only  set  these  up  on  the  first 
screen  and   turn   the   respective 


mode  off  on  the  last  screen. 
CTRL-X  (Exit  to  BASIC).  This  lets 
you  save,  load,  and  edit  BASIC  pro- 
grams as  usual.  Screen  Genie  is  de- 
signed so  that  you  can  exit  to 
BASIC  and  later  reactivate  the  utili- 
ty without  disturbing  a  BASIC  pro- 
gram in  memory.  To  reactivate 
Screen  Genie,  just  type  GENIE  and 
press  RETURN. 

Under  ordinary  circumstances, 
pressing  RUN/STOP-RESTORE 
does  not  disable  Screen  Genie.  If 
you  disable  it  in  some  other  way, 
type  SYS  50800  and  press  RETURN 
to  start  it  up  again.  When  you  reen- 
ter Screen  Genie,  the  work  screen 
contains  whatever  was  on  the 
screen  when  you  left  BASIC:  Press 
CTRL-O  immediately  to  recall  what 
you  were  working  on  at  the  time  of 
your  last  exit. 

Since  the  GENIE  command 
works  in  program  mode  as  well  as 
direct  mode,  you  can  edit  a  previ- 
ously designed  screen  by  inserting 
the  word  GENIE  just  after  the  last 
PRINT  statement,  and  then  run- 
ning only  that  portion  of  the  pro- 
gram that  displays  the  screen.  For 
example,  if  the  routine  that  re- 
creates your  screen  uses  lines 
500-525,  then  you  could  add  GE- 
NIE to  the  end  of  line  525  (or  the 
beginning  of  line  526)  and  type 
RUN  500.  You'll  need  to  give  the 
new  screen  a  different  beginning 
line  number,  and  then  delete  the 
old  routine  when  you  exit.  (Don't 
forget  to  remove  the  GENIE  com- 
mand from  the  program  when  it's 
finished.) 

Modes 

In  addition  to  ordinary  text  mode 
(what  you  see  when  you  turn  on 
the  64),  Screen  Genie  lets  you  work 
in  extended  background  color 
mode  or  multicolor  mode,  or  re- 
place the  usual  character  set  with  a 
custom-defined  character  set  of 
your  own.  Consult  the  Commodore 
64  User's  Guide  for  additional  infor- 
mation on  how  to  use  these  modes. 

CTRL-K  (Extended  background). 
This  mode  permits  each  character 
to  have  any  of  four  different  back- 
ground colors,  but  lets  you  use  only 
the  first  64  characters  of  the  charac- 
ter set. 

CTRL-C  (Multicolor).  Since  the  or- 
dinary character  set  looks  quite 
strange  in   multicolor  mode,   this 


mode  will  most  likely  require  a  cus- 
tom character  set.  It  cannot  be  used 
at  the  same  time  as  extended  back- 
ground mode;  selecting  one  mode 
turns  the  other  off. 
CTRL-U  (User-defined  characters). 
Selecting  this  mode  causes  the  64  to 
use  a  custom  character  set.  Only  the 
uppercase/graphics  character  set  is 
available  in  this  mode.  Before 
choosing  this  option,  you  must 
store  the  character  definitions  in 
memory  beginning  at  location 
61440.  Note  that  this  configuration 
is  only  needed  while  you're  editing 
the  screen  with  Screen  Genie.  Once 
the  screen  design  is  done,  and  you 
have  generated  a  BASIC  routine  to 
recreate  the  screen  (see  the  Pro- 
gram option  above),  you  can 
change  your  program  to  use  what- 
ever character  set  and  memory  lo- 
cations you  want. 

Custom  character  mode  de- 
mands a  little  more  effort  on  your 
part.  As  in  other  cases,  Screen  Ge- 
nie's Program  option  generates  a 
complete  routine  with  all  of  the 
necessary  PEEKs,  POKEs,  and 
PRINTS  needed  to  reproduce  the 
screen.  However,  it's  your  job  to 
put  the  custom  character  defini- 
tions in  memory,  decide  on  a  loca- 
tion for  the  screen,  and  perform  the 
extra  POKEs  needed  to  set  every- 
thing up. 

Cursor  Functions 

This  group  of  options  gives  you 
additional  control  over  the  drawing 
cursor.  They  are  selected  by  press- 
ing one  of  the  odd-numbered  func- 
tion keys.  Any  or  all  of  these  may 
be  turned  on  at  one  time;  however, 
if  the  Draw  function  (fl)  is  active,  it 
takes  precedence  over  the  other 
three. 

fl  (Draw  with  the  cursor).  This  op- 
tion lets  you  draw  with  any  charac- 
ter, There  are  two  ways  to  select  the 
drawing  character.  You  can  either 
move  the  cursor  to  the  desired  char- 
acter and  press  fl,  or  press  fl  and 
type  the  character  you  want  to  use. 
To  erase,  press  the  space  bar. 
f3  (Paint  with  the  cursor).  Select  a 
painting  color  just  as  you  would 
normally  change  the  cursor  color  in 
BASIC.  Press  CTRL  or  the  Commo- 
dore key  along  with  a  number  key 
from  1-8. 

f5  (Change  case  with  the  cursor). 
This   is   very   useful    in   extended 


90     COMPUTEI      April  1986 


background  mode  where  a  shifted 
character  has  a  different  back- 
ground color. 

f7  (Reverse  characters  with  cursor). 
This  option  is  also  handy  in  extend- 
ed background  mode,  where  re- 
versing a  character  gives  it  a 
different  background  color.  When 
you  reverse  a  space  character  in 
normal  mode,  it  has  whatever  color 
happens  to  be  stored  in  color  mem- 
ory— unless  the  color  happens  to 
be  the  same  as  the  background 
color,  in  which  case  it  is  changed  to 
the  current  text  color  in  order  to 
make  it  visible.  You  can  guarantee 
the  color  of  reversed  spaces  by 
turning  on  the  Paint  function  at  the 
same  time. 

Color  Control 

The  even-numbered  function  keys 
provide  you  with  complete  color 
control  as  follows: 

f2.  Cycle  the  border  color  (memory 
location  53280). 

f4.  Cycle  the  normal  background 
color  (location  53281). 
f6.  The  menu  lets  you  cycle  back- 
ground color  registers  one,  two, 
and  three  (these  color  registers  are 
used  only  in  extended  background 
or  multicolor  mode). 
£8,  Cycle  the  color  of  every  charac- 
ter that  is  the  same  color  as  the 
character  under  the  cursor.  If  you 
continue  to  press  f8.  Screen  Genie 
remembers  which  characters  you 
started  changing  and  cycles  only 
those  characters,  rather  than 
switching  to  new  ones  each  time. 
As  soon  as  you  press  any  other  key, 
however,  these  characters  are 
forgotten. 

Compatibility 

Screen  Genie  is  designed  to  coexist 
with  other  Commodore  64  utilities 
as  peacefully  as  possible.  To  mini- 
mize memory  conflicts,  nearly  all  of 
its  program  code  and  workspace 
areas  reside  in  the  hidden  RAM 
under  the  64's  BASIC  ROM,  Kernal 
ROM,  and  I/O  address  space.  Even 
so,  some  not-so-hidden  RAM  had 
to  be  used.  The  memory  locadons 
from  50800-52223  ($C670-$CBFF) 
are  used  for  links  to  the  system, 
interrupt-driven  routines,  sprite 
shapes,  and  screen  memory.  This 
still  leaves  locations  49152-50799 
($C000-$C66F)  free  for  programs 
such  as  "TurboDisk,"  and  locations 


52224-53247  ($CCOO-$CFFF)  fret 
for    programs    such    as    the    DOS 

.      08D9 

'-    0aEi 

'      08E9 

BC 
A2 
01 

A2 
09 
08 

04 
20 
8D 

20 
9B 
02 

EF 
AS 
03 

AA 
A9 
A9 

A9 
00 
03 

El 
8D 
85 

02 
A4 
C0 

Wedge. 

Programs 

which 

reside 

ir 

1      08F1 

2D 

85 

2F 

85 

31 

A9 

08 

85 

FD 

the   upper 

BASIC 

program 

area 

08F9 

2E 

85 

30 

85 

32 

AD 

11 

D0 

IC 

such  as 

"MetaBASIC. 

"  will  not  bf 

,      0901 

09 

10 

8D 

11 

00 

4C 

39 

A4 

20 

' 

'      0909 

93 

0D 

0D 

20 

20 

IC 

12 

02 

63 

affected  at  all. 

0911 

08 

20 

2A 

2A 

2A 

20 

57 

4F 

E6 

If  you 

want  to  use  othe 

r  utili 

-      0919 

52 

4B 

2D 

53 

43 

52 

45 

45 

35 

ties  with  th 

s  Droeram 

.  install  therr 

,      0921 

4E 

20 

2A 

2A 

2A 

02 

08 

20 

03 

before  you  load  Screen  Genie. 

Th 

er« 

^      0929 
-      0931 

92 
54 

02 
4F 

05 
20 

0D 
52 

02 
45 

04 
2D 

20 
45 

IE 
4E 

F4 
22 

is    one 

mmor   quirk 

when 

using 

;      0939 

54 

45 

52 

20 

41 

46 

54 

45 

24 

Screen 

Genie    wi 

th 

MetaBASIC 

0941 

52 

20 

45 

58 

49 

54 

20 

54 

E2 

Screen 

Genie   wedges 

itself 

ir 

0949 
0951 

4F 
0D 

20 
02 

42 
04 

41 
20 

53 
54 

49 

59 

43 

50 

00 
45 

BA 
DA 

through 

the  BASIC  error 

vector  a 

0959 

20 

12 

20 

47 

45 

4E 

49 

45 

B3 

768-76S 

,  which  is  reset  by  some 

0 

f      0961 

20 

92 

20 

41 

4E 

44 

20 

50 

54 

the  commands  in 

MetaBASIC. 

Nc 

,      0969 

52 

45 

53 

53 

20 

52 

45 

54 

BE 

harm  is 

done  when  this 

occurs 

0971 
0979 

55 
98 

52 
28 

4E 
20 

0D 
4F 

00 
52 

02 
20 

04 
12 

20 
20 

F5 
32 

you'll  just 

have  to  reenter 

Dcreer 

1      0981 

53 

59 

S3 

20 

35 

30 

38 

30 

0B 

Genie  with  SYS  50800  rather  thar 

1      0989 

30 

20 

92 

20 

29 

02 

06 

00 

7A 

the    more 

convenient 

GENIE 

-      0991 

02 

04 

20 

81 

50 

52 

45 

53 

6B 

'      0999 

53 

20 

12 

53 

48 

49 

46 

54 

10 

commana. 

09A1 

2D 

43 

4C 

52 

92 

20 

54 

4F 

D6 

09A9 
09B1 
09  B9 

20 
43 
02 

43 
52 
04 

4C 
45 
20 

45 
45 
IF 

41 
4E 
43 

52 
02 
55 

20 
07 
52 

53 
0D 
52 

61 

ac 

2A 

^ 

B 

9 

M 

iH 

■ 

^1 

^M 

09C1 

45 

4E 

54 

20 

43 

4F 

4C 

4F 

05 

^1 

^H 

09C9 

52 

20 

49 

4E 

44 

49 

43 

41 

2A 

mi 

^K 

09D1 

54 

45 

44 

20 

48 

45 

52 

45 

2B 

|Bf 

9 

09D9 
09E1 

2D 
98 

2D 
23 

2D 
ID 

2D 
ID 

2D 
43 

3E 
4F 

13 
40 

00 
50 

CE 

BG 

■j 

1 

09E9 

55 

54 

45 

21 

10 

50 

55 

42 

80 

^1 

^M 

09F1 

4C 

49 

43 

41 

54 

49 

4F 

4E 

AO 

Et+i 

^1 

^M 

09F9 

53 

ID 

50 

52 

45 

53 

45 

4E 

7C 

'titi*4*J*f*ti*i*Ji*itHHtii4itfwk 

0A01 
0A09 

54 
ID 

53 
ID 

02 
ID 

04 
ID 

11 
ID 

02 
ID 

08 
10 

9D 
10 

D2 

^Rifjjjj^i 

ID 

|gvv\\^kkv\kv^^st\^^^v^v^Vi^Lsb\^^^^vvv\ 

m 

0A11 
0A19 

ID 
75 

ID 
02 

ID 
26 

ID 
63 

ID 
69 

00 
62 

93 
20 

9E 
20 

IF 

^"^ 

98 

The  "Screen  Genie"  screen  editor/ 

0A21 
0A29 

75 
69 

63 
75 

69 
63 

75 
69 

63 
75 

69 
63 

B0 
69 

63 

B2 

D2 
11 

program  generator  makes  it  easy 

to 

aA31 

20 

B2 

20 

20 

75 

63 

69 

75 

89 

create  graphic  screens  like  th 

s  and 

0A39 

63 

69 

B2 

20 

B2 

20 

B2 

75 

A2 

incorporate  themrin  your  owt 

Co 

mmc 

- 

0A41 

63 

69 

20 

20 

62 

62 

20 

20 

64 

dore  64  BASIC  progro 

ms. 

0A49 

6A 

63 

69 

62 

20 

20 

62 

63 

68 

0A51 

6B 

AB 

B3 

20 

AB 

B3 

20 

62 

4D 

0A59 

6D 

62 

20 

20 

62 

63 

B2 

AB 

74 

Screen  Genie  For 

0A61 

B3 

20 

62 

6D 

62 

20 

62 

AB 

7E 

Commodore  64 

0A69 
0A71 

B3 
6A 

20 
60 

20 
6B 

20 
6A 

62 
63 

62 
6B 

20 
Bl 

20 
20 

62 
33 

Please  refer  to  the  "MLX 

'  article  in  thi. 

issue 

0A79 

6D 

6A 

63 

6B 

6A 

63 

6B 

Bl 

6B 

before  entering 

the  following  listing. 

0A81 

20 

Bl 

20 

20 

6A 

63 

6B 

6A 

3A 

-      0A89 

63 

6B 

Bl 

20 

Bl 

20 

Bl 

6A 

3E 

0801:18 

08 

0A   00 

9E 

32 

30 

37 

B 

'     0A91 

63 

6B 

20 

20 

62 

6A 

02 

26 

IF 

0309:34 

3A 

53    43 

52 

45 

45 

4E 

Ef 

,     0A99 

63 

6B 

99 

75 

02 

12 

60 

69 

47 

0811:20 

47 

45    4E 

49 

45 

00 

00 

Ei 

0AA1 

9C 

75 

02 

12 

60 

69 

99 

62 

01 

0819:00 

A9 

04    85 

0E 

A9 

OD 

85 

2, 

0821 :0F 

A9 

00    85 

10 

A9 

A0 

85 

6' 

3      0AA9 

12 

43 

4F 

4D 

4D 

41 

4E 

44 

A6 

0829:11 

A2 

0F   A0 

00 

88 

81 

0E 

E' 

}      0AB1 

53 

3A 

92 

20 

20 

43 

54 

52 

5B 

0831 :91 

10 

C0    00 

D0 

F7 

E6 

0F 

6  = 

J      0AB9 

4C 

20 

26 

20 

62 

9C 

62 

12 

IF 

0839:E6 

11 

CA    30 

06 

D0 

EE 

A0 

41 

-      0AC1 

20 

43 

55 

52 

53 

4F 

52 

20 

23 

0841 :8a 

D0 

EA    A0 

80 

B9 

8B 

IC 

41 

-      0AC9 

46 

55 

4E 

43 

54 

49 

4F 

4E 

09 

0849:99 

6F 

C6    88 

D0 

F7 

A0 

00 

01 

}      0AD1 

53 

20 

92 

62 

99 

62 

02 

12 

7C 

0851:98 

99 

00    C7 

88 

D0 

FA 

A9 

B' 

J      0AD9 

20 

62 

9C 

62 

02 

12 

20 

62 

4B 

0a59:FF 

8D 

15    CI 

A0 

3F 

99 

40 

6J 

L      0AE1 

99 

62 

48 

2D 

48 

45 

4C 

50 

77 

0861 :C7 

88 

10    FA 

A0 

15 

A9 

C0 

9f 

,      0AE9 

20 

28 

54 

48 

49 

53 

20 

4D 

4C 

0869:99 

80 

C7    88 

88 

88 

10 

F8 

6" 

7      0AF1 

45 

4E 

55 

29 

62 

9C 

62 

46 

0A 

0e71:A9 

FF 

80   80 

C7 

8D 

83 

C7 

5: 

0AF9 

31 

2D 

44 

52 

41 

57 

02 

0A 

15 

0879:80 

D2 

C7    8D 

D5 

C7 

A0 

0F 

F^ 

;      0B01 

20 

5F 

62 

99 

62 

42 

20 

43 

9E 

0881 :A9 

03 

99    CO 

C7 

88 

88 

88 

ei 

)      0B09 

4C 

45 

41 

52 

20 

54 

4F 

20 

F4 

0889:10 

F8 

78    A9 

22 

85 

01 

A9 

5C 

:      0B11 

42 

4F 

54 

54 

4F 

40 

20 

62 

3E 

0891 :D0 

A0 

E0    A2 

10 

20 

EF 

AA 

B^ 

1      0B19 

9C 

62 

46 

33 

2D 

50 

41 

49 

88 

0a99:A9 

26 

85    01 

58 

20 

78 

AB 

hi 

J      0B21 

4E 

54 

02 

09 

20 

5F 

62 

99 

21 

0eAl:18 

20 

92    A4 

A9 

01 

20 

CF 

c; 

i      0B29 

62 

54 

2D 

43 

4C 

45 

41 

52 

AB 

08A9:AA 

A9 

00    AD 

11 

D0 

48 

29 

D'^ 

)      0B31 

20 

54 

4F 

20 

54 

4F 

50 

02 

DA 

0631 :EF 

8D 

11    D0 

A9 

09 

A2 

09 

0C 

:      0B39 

04 

20 

62 

9C 

62 

46 

35 

2D 

33 

0889:20 

9B 

A5    38 

20 

92 

A4 

63 

F  = 

,      0B41 

43 

48 

41 

4E 

47 

45 

20 

43 

EA 

0801:85 

48 

20    C9 

AA 

A9 

17 

A2 

1^ 

I      0B49 

41 

53 

45 

20 

20 

20 

5F 

62 

22 

08C9:0A 

20 

9B   A5 

A9 

C8 

A0 

B8 

li 

^      0B51 

•99 

62 

4D 

2D 

4D 

4F 

56 

45 

E2 

0 

3D1:A2 

04 

20    EF 

AA 

A9 

D8 

A0 

8E 

0B59 

:02 

0C 

20 

62 

9C 

62 

46 

37 

CF 

April  1986     COMPUTEI      91 


0B61;2D 

52 

45 

56 

45 

52 

53 

45 

10 

0DE9:91 

10 

60 

24 

0C 

10 

08 

A0 

70 

1071:0F 

A9 

00 

35 

10 

A9 

FO 

85 

82 

0B69:02 

07 

20 

5F 

62 

99 

62 

5A 

04 

0DF1:00 

Bl 

0E 

49 

40 

91 

0E 

60 

93 

1079:11 

20 

E7 

A3 

A9 

00 

85 

0E 

C7 

0B71 :2D 

4D 

45 

4D 

4F 

52 

49 

5A 

9F 

0OF9:24 

0C 

50 

0A 

A0 

00 

A5 

0A 

2E 

1081 :A9 

F8 

85 

0F 

A5 

50 

85 

10 

OF 

0B79:45 

20 

53 

43 

32 

45 

45 

4E 

59 

0E01:91 

0E 

AS 

0B 

91 

10 

60 

18 

74 

10895A5 

51 

85 

11 

20 

E7 

A3 

A9 

24 

0381:20 

62 

9C 

6A 

02 

12 

60 

5B 

FE 

0E09:20 

92 

A4 

20 

30 

A6 

A9 

E7 

C7 

1091:00 

85 

0E 

A9 

FC 

85 

0F 

A5 

31 

0B89:99 

62 

4F 

2D 

4F 

4F 

50 

53 

60 

0En:85 

10 

A9 

CB 

85 

11 

20 

88 

IF 

1099:52 

85 

10 

A5 

53 

85 

11 

20 

93 

0891:21 

20 

28 

52 

45 

53 

54 

4F 

09 

0E19:A6 

4C 

00 

A0 

18 

20 

92 

A4 

B0 

10A1 :E7 

A3 

A9 

20 

80 

15 

00 

A9 

El 

0B99:52 

45 

29 

20 

62 

9A 

75 

02 

BB 

0E21:20 

30 

A6 

A5 

0E 

85 

10 

A5 

04 

10A9:1C 

80 

Fe 

CB 

4C 

00 

A0 

A9 

64 

0BA1:12 

60 

69 

99 

62 

50 

20 

43 

91 

0E29:0F 

85 

11 

A9 

00 

85 

0E 

A9 

06 

10B1:00 

85 

39 

85 

3A 

60 

20 

D2 

19 

0BA9:52 

45 

41 

54 

45 

20 

50 

52 

45 

0E31:C8 

85 

0F 

20 

88 

A6 

4C 

00 

6E 

10B9:FF 

20 

03 

AS 

48 

20 

08 

AB 

33 

0BB1:49 

4E 

54 

20 

50 

47 

4D 

62 

29 

0E39:A0 

EE 

20 

00 

4C 

00 

A0 

EE 

05 

10C1:68 

C9 

91 

D0 

06 

E4 

39 

00 

CE 

0BB9:9A 

62 

12 

02 

06 

20 

43 

4F 

9E 

0E41:21 

00 

4C 

00 

A0 

A5 

00 

49 

AA 

10C9:ED 

F0 

EE 

C9 

11 

00 

06 

E4 

54 

0BC1:4C 

4F 

52 

02 

07 

20 

92 

62 

7C 

0E49:80 

85 

00 

20 

30 

A6 

20 

OC 

E3 

10D1;3B 

00 

E3 

F0 

E4 

C9 

9D 

00 

A9 

0BC9 : 99 

62 

59 

20 

45 

58 

49 

54 

95 

0E51:A0 

4C 

00 

A0 

A5 

00 

49 

40 

0F 

1009:06 

04 

3A 

00 

09 

F0 

OA 

09 

94 

0BD1:20 

54 

4F 

20 

42 

41 

53 

49 

FF 

0E59:85 

00 

20 

30 

A6 

20 

SP 

A0 

58 

10E1;1D 

00 

06 

04 

30 

00 

CF 

F0 

87 

0BD9 : 43 

20 

20 

20 

62 

9A 

62 

02 

E3 

0E61:4C 

00 

A0 

18 

20 

92 

A4 

4C 

lA 

10E9:D0 

60 

A6 

3D 

20 

81 

AA 

A4 

34 

0BE1 ! 12 

20 

62 

99 

6A 

02 

12 

60 

CE 

0E69:00 

A0 

AD 

11 

D0 

49 

40 

80 

2E 

10F1:3E 

Bl 

0E 

91 

10 

A9 

20 

91 

71 

0BE9:6B 

9A 

62 

46 

32 

2D 

42 

4F 

27 

0E71:11 

00 

29 

40 

F0 

08 

AD 

16 

8C 

10F9:0E 

88 

10 

F5 

20 

87 

AA 

A5 

BE 

0BF1:52 

44 

45 

52 

02 

09 

20 

62 

E6 

0E79:D0 

29 

SF 

8D 

16 

00 

4C 

00 

AB 

1101:0E 

18 

69 

29 

85 

0E 

90 

02 

67 

0BF9: 96 

75 

02 

12 

60 

69 

9A 

62 

5A 

0E81:A0 

AD 

16 

D0 

49 

10 

8D 

16 

E4 

1109:E6 

0F 

A5 

10 

18 

69 

28 

85 

54 

0C01 : 46 

34 

2D 

42 

41 

43 

4B 

47 

08 

0E89:O0 

29 

10 

F0 

08 

AD 

11 

00 

53 

1111:10 

90 

02 

E6 

11 

OA 

10 

04 

B6 

0C09  :  52 

4F 

55 

4E 

44 

02 

05 

20 

02 

0E91:29 

BF 

8D 

11 

D0 

4C 

00 

A0 

4D 

1119:60 

18 

20 

EO 

A4 

40 

00 

A0 

4B 

0C11 :62 

96 

62 

12 

20 

4D 

4F 

44 

86 

0E99:AD 

18 

00 

49 

04 

29 

FC 

80 

BD 

1121:20 

78 

AB 

38 

20 

92 

A4 

20 

IF 

0C19:45 

53 

3A 

20 

92 

20 

43 

54 

El 

BEAlslS 

00 

4C 

00 

A0 

A5 

0C 

49 

84 

1129:C9 

AA 

A9 

B8 

m 

08 

A2 

04 

00 

0C21:52 

4C 

20 

26 

20 

20 

20 

62 

FF 

0EA9:B0 

85 

0C 

20 

30 

A6 

20 

E8 

30 

1131:20 

EF 

AA 

A9 

BC 

A0 

D8 

A2 

0C 

0C29:9A 

62 

46 

36 

20 

42 

41 

43 

8B 

0EB1:A0 

4C 

00 

A0 

A5 

0C 

49 

40 

6B 

1139:04 

20 

EF 

AA 

A5 

0C 

29 

C0 

7E 

0C31 :4B 

47 

4E 

44 

20 

52 

45 

47 

EA 

0EB9:95 

0C 

20 

30 

A6 

20 

C3 

Al 

81 

1141 :0A 

AA 

2A 

8D 

B6 

09 

8A 

0A 

60 

0C39:20 

31 

2D 

33 

62 

96 

62 

02 

BA 

0EC1:20 

F5 

Afl 

4C 

00 

A0 

A0 

00 

08 

1149 :2A 

80 

66 

09 

AS 

00 

29 

00 

02 

0C41:12 

20 

62 

9A 

62 

46 

38 

20 

2A 

0EC9 :B1 

0E 

85 

0A 

Bl 

10 

85 

0B 

77 

1151:0A 

AA 

2A 

80 

8E 

09 

SA 

0A 

30 

0C49:43 

48 

41 

52 

53 

20 

4F 

46 

62 

0ED1 :6a 

38 

20 

92 

A4 

20 

30 

A6 

06 

1159:2A 

90 

DE 

D9 

AS 

48 

29 

40 

4E 

0C51:20 

53 

41 

4D 

45 

20 

20 

62 

98 

0ED9:A0 

00 

Bl 

0E 

29 

BF 

2C 

11 

0F 

1161 :0A 

0A 

2A 

80 

32 

DB 

A5 

47 

BC 

0C59:96 

62 

4B 

2D 

45 

58 

54 

45 

0B 

0EE1 :D0 

50 

02 

29 

3F 

C9 

20 

D0 

7F 

1169:29 

10 

F0 

02 

A9 

01 

80 

5A 

29 

0C61:4E 

44 

45 

44 

20 

42 

41 

43 

6E 

0EE9:03 
0EF1:85 
0EF9:A9 
0F01 : A0 

4C 

00 

A0 

Bl 

10 

29 

0F 

03 

1171:DB 

A5 

46 

29 

04 

4A 

4A 

8D 

Bl 

0C69:4B 

47 

44 

5F 

62 

9A 

62 

20 

09 

4A 

A9 

00 

85 

0E 

85 

10 

18 

1179 :82 

DB 

A9 

00 

85 

06 

20 

OC 

60 

0C71:20 

20 

43 

4F 

4C 

4F 

52 

20 

63 

08 

85 

11 

A9 

FC 

85 

0F 

3E 

1181 :A5 

24 

55 

30 

07 

38 

20 

ED 

74 

0C79:41 

53 

20 

43 

48 

41 

52 

20 

4B 

00 

A2 

04 

20 

81 

AA 

Bl 

12 

1189: A4 

4C 

00 

A0 

48 

38 

20 

ED 

6C 

0C81:20 

62 

96 

62 

43 

20 

40 

55 

F9 

HF09 ■ HE 

20 

87 

AA 

29 

0F 

C5 

4A 

2D 

1191 :A4 

69 

4C 

09 

A0 

B0 

00 

A9 

05 

0C89:4C 

54 

49 

43 

4F 

4C 

4F 

52 

06 

0F11 :D0 

09 

Bl 

10 

18 

69 

01 

29 

A2 

1199:88 

85 

0E 

A9 

AF 

85 

0F 

A9 

19 

0C91:02 

05 

20 

5F 

62 

9A 

62 

20 

48 

0F19 :0F 

91 

10 

C8 

00 

E6 

E6 

11 

B2 

llAl :B0 

48 

00 

0B 

A9 

41 

85 

0E 

64 

0C99:20 

20 

4F 

56 

45 

52 

20 

43 

10 

0F21 : E6 

0F 

CA 

00 

OF 

20 

C3 

AS 

89 

11A9:  A9 

00 

85 

0F 

A9 

F8 

48 

A0 

A4 

0CA1:55 

52 

53 

4F 

52 

02 

04 

20 

IB 

0F29 :C9 

8C 

F0 

C6 

4C 

09 

A0 

38 

09 

llBl ;07 

AO 

11 

DO 

91 

0E 

88 

AD 

75 

0CA9:62 

96 

62 

55 

20 

55 

53 

45 

E4 

0F31 ! 20 

92 

A4 

20 

CO 

AA 

A9 

A9 

B0 

11B9 : 16 

00 

91 

0E 

88 

AD 

18 

D0 

2A 

0CB1:52 

20 

44 

45 

46 

49 

4E 

45 

11 

0F39: A2 

AE 

20 

9B 

A5 

A9 

31 

85 

00 

1101 :91 

0E 

88 

B9 

20 

00 

29 

OF 

82 

0CB9:44 

20 

20 

20 

5F 

62 

9A 

6A 

26 

0F41 : 10 

80 

F9 

AE 

A9 

06 

A2 

AE 

91 

1 1 C9  1 9 1 

0E 

88 

10 

F6 

AO 

86 

02 

C7 

0CC1:02 

12 

60 

6B 

96 

62 

20 

20 

C0 

0F49: 20 

9B 

A5 

E6 

10 

A5 

10 

C9 

82 

1101:85 

49 

A5 

07 

85 

4B 

20 

08 

OB 

0CC9:43 

48 

41 

52 

20 

53 

45 

54 

10 

0F5i : 34 

00 

EE 

A9 

00 

A2 

AF 

20 

A8 

1109sAB 

86 

29 

84 

2A 

68 

AS 

A9 

CE 

0CD1:20 

40 

20 

36 

31 

34 

34 

30 

64 

0F59 :9B 

A5 

A9 

IC 

80 

15 

D0 

A0 

A8 

11E1:C8 

A2 

04 

20 

EF 

AA 

A4 

11 

18 

0CD9:62 

98 

20 

20 

50 

52 

45 

53 

F8 

0P6i :02 

B9 

43 

00 

99 

29 

00 

88 

F2 

11E9;A9 

D8 

A2 

04 

20 

EF 

AA 

60 

22 

0CE1:53 

20 

41 

4E 

59 

20 

4B 

45 

OF 

0F69:10 

F7 

20 

F3 

A9 

C9 

20 

00 

56 

llFl :08 

B0 

11 

38 

20 

92 

A4 

A9 

28 

0CE9:59 

0D 

96 

6A 

02 

12 

60 

6B 

EF 

0F71 :0C 

A9 

00 

8D 

15 

00 

38 

20 

55 

11F9:88 

85 

0E 

A9 

AF 

85 

0F 

A9 

79 

BCF1:98 

20 

20 

46 

4F 

52 

20 

57 

22 

0F79 : ED 

A4 

4C 

00 

Aj3 

C9 

31 

90 

60 

1201:B0 

48 

00 

IC 

A9 

41 

85 

0E 

D6 

0CF9:4F 

52 

4B 

20 

53 

43 

52 

45 

IC 

0F81:E9 

09 

34 

B0 

E5 

38 

E9 

30 

AC 

1209:A9 

00 

85 

0F 

A9 

F8 

48 

AS 

0B 

0D01:45 

4E 

00 

AO 

86 

02 

80 

2C 

AF 

0F89:A8 

B6 

42 

ES 

8A 

99 

42 

00 

BF 

1211;4B 

85 

07 

A5 

49 

80 

86 

02 

IF 

0D09:D0 

20 

C3 

A5 

24 

55 

10 

19 

16 

0F91 :4C 

5C 

A2 

18 

20 

92 

A4 

20 

77 

1219:A6 

29 

A4 

2A 

18 

20 

F0 

FF 

35 

0D11:A0 

12 

D9 

37 

AF 

F0 

05 

88 

82 

0F99:AC 

A3 

A9 

18 

85 

3B 

A9 

27 

41 

1221 :A0 

07 

Bl 

0E 

80 

11 

00 

88 

49 

0D19:10 

F8 

30 

0D 

99 

0A 

A9 

B9 

48 

0FA1:85 

3C 

A9 

IE 

80 

F8 

CB 

20 

B0 

1229:B1 

0E 

9D 

16 

00 

88 

Bl 

0E 

D6 

0D21:4A 

AF 

48 

C8 

B9 

4A 

AF 

48 

80 

0PA9:B6 

A3 

86 

29 

86 

39 

84 

2A 

BB 

1231:80 

18 

00 

88 

Bl 

0E 

99 

20 

DO 

0D29:60 

C9 

94 

F0 

D6 

C9 

14 

D0 

5E 

0FB1 :84 

3A 

A5 

0E 

85 

4C 

A5 

0F 

ED 

1239: Da 

88 

18 

P9 

20 

81 

AA 

A0 

76 

0D31:0A 

A9 

95 

A2 

AC 

20 

9B 

A  5 

5A 

0FB9:85 

4D 

A5 

10 

85 

4E 

A5 

11 

65 

1241:08 

A2 

04 

68 

20 

EF 

AA 

A5 

35 

0D39:4C 

00 

A0 

C9 

22 

F0 

C4 

C9 

52 

0FC1:85 

4F 

AD 

00 

D0 

80 

0C 

D0 

01 

1249 :0F 

A0 

08 

A2 

04 

20 

EF 

AA 

SD 

0D41 :93 

D0 

06 

18 

20 

92 

A4 

A9 

D9 

0FC9:AO 

01 

D0 

80 

0D 

00 

AD 

10 

09 

1251  :20 

87 

AA 

28 

B0 

lA 

20 

81 

EE 

0D49:93 

48 

20 

08 

AB 

63 

86 

29 

F8 

0FO1:O0 

29 

BF 

80 

10 

00 

29 

01 

8A 

1259:AA 

A9 

Fa 

A0 

B0 

A2 

08 

20 

A6 

0051:84 

2A 

E0 

18 

D0 

0C 

C9 

0D 

20 

0FD9:4A 

6A 

6A 

0D 

10 

D0 

8D 

10 

C4 

1261 :EF 

AA 

20 

67 

AA 

A0 

07 

B9 

44 

0D59:F0 

A9 

C9 

80 

F0 

A5 

C9 

11 

2B 

0FE1:O0 

A9 

02 

80 

2D 

D0 

80 

2E 

El 

1269:41 

00 

99 

88 

AF 

88 

10 

F7 

Al 

0D61:F0 

Al 

24 

0C 

50 

21 

C9 

90 

09 

0FE9:D0 

A9 

60 

8D 

15 

D0 

A9 

IF 

IE 

1271:A9 

20 

8D 

15 

00 

60 

A0 

00 

BE 

0D69:F0 

ID 

C9 

10 

F0 

19 

C9 

91 

5F 

0FF1:8D 

F8 

CB 

20 

B6 

A3 

8A 

38 

22 

1279:A6 

10 

00 

02 

C6 

11 

C6 

10 

47 

0D71iF0 

15 

C9 

11 

F0 

11 

20 

AC 

4C 

0FF9:E5 

29 

85 

3D 

98 

38 

E5 

2A 

75 

12ai:A6 

0E 

D0 

02 

C6 

0F 

CA 

86 

45 

0D79:A0 

A6 

29 

A4 

2A 

18 

20 

F0 

OF 

1001:85 

3E 

A9 

18 

38 

E5 

3D 

85 

83 

1289:0E 

20 

31 

AC 

Bl 

0E 

20 

39 

EC 

0D81:FF 

20 

C3 

Ai 

4C 

9A 

A0 

20 

64 

1009:3B 

A9 

27 

38 

E5 

3E 

85 

3C 

09 

1291: AC 

91 

10 

E4 

5F 

00 

El 

A6 

69 

0D89:AC 

A0 

20 

08 

AB 

E0 

18 

D0 

88 

1011:AO 

00 

00 

SO 

0E 

00 

AD 

01 

0B 

1299 :0F 

E4 

60 

00 

DB 

60 

85 

0E 

11 

0D91:0C 

C0 

27 

00 

08 

A4 

2A 

A6 

Al 

1019:D0 

8D 

0F 

D0 

AD 

10 

00 

29 

6C 

12A1:86 

0F 

A0 

00 

Bl 

0E 

F0 

0E 

96 

0D99:29 

18 

20 

F0 

FF 

20 

30 

A6 

E8 

i021:7F 

8D 

10 

00 

29 

01 

4A 

6A 

BF 

12A9:C9 

02 

F0 

0B 

20 

D2 

FF 

C8 

17 

0DA1:20 

F5 

A0 

20 

BF 

A0 

20 

DC 

FC 

1029:00 

10 

00 

8D 

10 

00 

A9 

E0 

BE 

12B1:D0 

F2 

S6 

0F 

D0 

EE 

60 

C8 

94 

0  DA9  :  A0 

20 

E8 

A0 

4C 

00 

A0 

C9 

B0 

1031:80 

15 

00 

A6 

29 

A4 

2A 

18 

2A 

12B9:B1 

0E 

AA 

ca 

Bl 

0E 

20 

D2 

F4 

0DB1:0D 

F0 

04 

C9 

SD 

00 

08 

E8 

54 

1039:20 

F0 

FF 

A9 

IE 

80 

F8 

CB 

25 

12C1:FF 

CA 

00 

FA 

F0 

E9 

20 

30 

02 

0DB9:A0 

00 

13 

20 

F0 

FF 

60 

4C 

BD 

1041:20 

AC 

A3 

20 

B6 

A3 

A5 

0E 

B0 

1209 :A6 

A9 

01 

00 

15 

00 

8D 

15 

BB 

0DC1:D2 

PF 

24 

00 

50 

18 

A0 

00 

BE 

1049:85 

50 

A5 

0F 

85 

51 

A5 

10 

B2 

12D1 ;D0 

AD 

27 

00 

49 

01 

80 

27 

4C 

0DC9:B1 

0E 

49 

80 

91 

0E 

29 

3F 

07 

1051:85 

52 

A5 

11 

85 

53 

A5 

4C 

9F 

12D9:D0 

A9 

14 

85 

13 

85 

12 

20 

9E 

0DD1:C9 

20 

D0 

0A 

AD 

21 

00 

29 

50 

1059:85 

0E 

A5 

40 

85 

0F 

A9 

00 

05 

12E1:F3 

A9 

AA 

A5 

91 

49 

FB 

00 

94 

0DD9:0F 

CD 

89 

AF 

F0 

07 

60 

24 

A3 

1061:85 

10 

A9 

F8 

85 

11 

20 

E7 

A5 

12E9:06 

A9 

80 

85 

55 

30 

00 

E0 

48 

0DE1 :0D 

10 

07 

A0 

00 

AO 

86 

02 

37 

1069: A3 

A5 

4E 

85 

0E 

A5 

4F 

85 

12 

12F1:85 

90 

04 

E0 

80 

90 

F2 

A9 

09 

P2     COMPUTE)     April  19B6 


12F9: 

1301: 

1309: 

1311: 

1319: 

1321: 

1329: 

1331: 

13  39: 

1341  : 

1349; 

1351: 

1359; 

1361: 

1369: 

1371; 

1379: 

1381; 

1389; 

1391; 

1399; 

13A1; 

13A9; 

13B1; 

13B9; 

13C1  ; 

13C9; 

13DI; 

13D9i 

13E1; 

13E9; 

13F1; 

13F9; 

1401: 

1409: 

1411; 

1419: 

1421; 

1429: 

1431 

1439 

1441 

1449 

1451 

1459 

1461 

1469 

1471 

1479 

1481 

1489 

1491 

1499 

14A1 

14A9 

14B1 

14B9: 

14C1 

14C9: 

14D1 

14D9; 

14E1  : 

14E9: 

14F1  : 

14F9: 

1501: 

15  09; 

1511: 

1519: 

1521: 

1529: 

1531: 
1539: 
1541  ; 
1549; 
1551  ; 
1559: 
1561: 
1569: 
1571; 
1579: 


55  A0 
15  D0 
20  92 
95  08 
B3  AF 
A2  D6 
A9  04 
C6  A9 
20  F0 
E9  28 
69  18 
10  AD 
8D  10 
10  69 
0A  26 

10  90 
65  10 
65  0F 
60  A0 
0E  E4 

11  F0 
0F  D0 
CB  38 
A9  93 
14  85 
AC  20 
20  9B 
A6  39 
A9  B6 


00  85 

:FE  2D 

60  18 

;90  AF 

:22  BD 

:F8  78 

;8D  FF 

;4C  76 

;10  38 

;90  03 

;26  10 

102  E6 

;05  10 

;0A  85 

A5  10 

:18  65 

;10  18 

;A9  C8 

i85  11 

;0E  A6 

:0F  E4 

;EE  E6 

;8D  E7 

;CD  AA 

:00  65 

:FF  A2 

:A2  AF 

:4C  Ea 

:00  A0 

;A5  4C  B4 

:0D  F0  43 

j30  90  E7 

:D2  FF  29 

:15  06  14 

:14  26  IS 

:14  BA  65 

:06  14  26 

:14  65  14 

:B1  85  15 

:85  IC  A5 

:A9  DC  A2 

:1D  A9  00 

:1B  AS  47 

:15  AB  20 

:D0  30  A9 
:0E  AA  A9 
:AA  4C  87 

:20  15  AB 
:AB  D0  0F 

:20  0E  AA 

:41  AA  20 
:5B  AA  BD 

:A5  42  20 

:8E  87  AD 

:04  A9  FF 

:8F  AD  20 

rAE  20  9B 

:07  A9  76 

rA9  8A  A2 

:6C  AA  24 

:A9  A0  27 

:F0  0F  C9 

:D0  0B  20 

:04  A9  20 

;C6  26  D0 

:10  85  06 

:85  09  4C 

;09  A2  00 

;20  0E  AA 

;20  CC  A9 

:10  F6  A9 

:9A  AA  C6 

AS  84  25 

;CC  A9  AA 

;15  A9  92 

:4C  SB  A8 

;12  85  09 

:48  50  02 

:12  A4  24 

:F0  09  85 

;20  2E  AA 


00  84 
8D  15 
A4  A2 
CA  10 
95  39 
A0  AF 
8D  88 
00  85 
FF  98 
A8  0A 
8D  00 
10  D0 
00  8A 
32  8D 
0F  0A 
02  E6 
85  0E 
85  0F 
00  A9 
10  D0 
08  E6 
EA  60 
20  92 
20  02 
15  85 
9B  A5 


A5 
20 


A2  AC 


12  A9  14 

00  8A  BE 
22  BD  44 
F8  A2  C9 
CA  10  68 
18  20  B7 
02  58  76 
0F  85  48 
C9  28  A6 
0A  0A  BB 
D0  90  D3 
29  FE  24 
0A  0A  87 

01  D0  21 
26  0F  06 
0F  84  56 
85  10  DA 
69  10  97 
20  91  45 
06  A6  EE 
0E  D0  7A 
A9  20  34 
A4  20  42 
FF  A9  CD 
40  A9  05 
A9  15  04 
C3  A5  C5 
A4  4C  FE 
20  9B  6C 


A6  20 

C9  20 

C9  3A 

0F  AS 

26  15 

B0  CD 

15  B0 

15  B0 

A5  15 

4C  El 

15  C9 

AC  4C 

85  lA 

29  10 
53  AB 
00  8D 
D6  A2 
A7  24 
20  53 
A9  3A 
A9  FD 
0E  AA 
7E  AD 
5B  AA 

A5  46 

D0  02 

53  AB 

AS  20 

A2  AD 

AO  20 

48  70 

20  CC 

A0  F0 

D5  A9 

91  16 

DD  20 

A0  00 

0E  A8 

86  54 
20  8F 
C9  20 
11  20 
26  D0 
E6  24 

30  0E 
85  09 
24  09 
20  2E 
29  3F 
20  D5 
08  A8 
8A  29 


C3  A5 

F0  E4 

80  E3 

A5  14 

B0  03 

65  14 

C4  85 

BC  98 

69  00 

A6  A5 

FA  90 

OB  A6 

A9  D0 

F0  ID 

20  6D 

B7  AD 

AD  20 

48  50 

AB  20 

8D  B7 

A2  AD 

A5  41 

8E  7D 

8D  88 

29  02 

A9  3  2 

A9  72 

F9  A9 

4C  C9 

41  AA 

26  20 

A9  C9 

04  C9 

C5  42 

88  10 

E0  A9 

20  CC 

A9  92 

CA  66 

AA  A0 

D0  12 

2E  AA 

E8  4C 

A4  24 

24  09 

20  2E 

10  07 

AA  8A 

C9  20 

A9  C5 

09  70 

7F  C9 


C9  14 
C9  30 
20  6A 
A6  4A 

06  33 
85  24 
15  9C 
65  6E 
B0  90 
14  FB 

07  8B 
85  31 
85  59 
20  82 
AB  8C 
20  Fl 
41  2B 
lA  62 
6D  50 
AD  40 
20  23 
20  70 
AD  FB 
AD  29 

F0  CE 

8D  F3 

A2  Dl 

D0  IC 

A7  AA 

20  14 

E0  21 

60  E6 

E0  95 

D0  58 

E3  7A 

A9  B6 

A9  63 

85  39 

24  CF 

27  BD 

88  51 

20  8E 

D5  27 

20  08 

30  D7 

AA  E2 

A9  10 

24  66 

F0  E8 

08  35 
Mr  44 
20  38 


1581 

1589 

1591 

1599 

15A1 

15A9 

15B1 

15B9 

15C1 

15C9 

15D1 

15D9 

15E1 

15E9 

15F1 

15F9 

1601 

1609 

1611 

1619 

1621 

1629 

1631 

1639 

1641: 

1649: 

1651: 

1659; 

1661: 

1669: 

1671: 

1679; 

1681: 

1689: 

1691: 

1699; 

16A1: 

16A9: 

16B1: 

16  B9; 

16C1 

16C9 

16D1 

16D9 

16E1 

16E9 

16F1 

16  F9 
1701 
1709 
1711 
1719: 
1721 
1729 
1731 

17  39 
1741 
1749 
1751 
1759 
1761 
1769 
1771 

1779: 
1781: 
1789: 
1791: 
1799: 
17A1  : 
17  A9: 
17B1: 
17  B9: 
17C1: 
1709: 
17D1: 
17D9: 
17E1: 
17E9: 
17F1; 
17F9: 
1801: 


:90  08 

;90  03 

:20  2E 

:16  A5 

;AA  AA 

;A9  00 

;9A  AA 

:C9  27 

;0E  AS 

;00  20 

:0A  A8 

;A5  20 

:A9  22 

:F9  A9 

;A5  28 

;6C  AA 

;AA  A5 

;5B  AB 

:6C  AA 

iAA  4C 

;20  5B 

:20  6C 

;41  AA 

;A2  AD 

;1D  20 

;20  9B 

;41  AC 

;02  C6 

:FA  90 

;A7  A5 

:A5  IB 

:85  0E 

:A5  2E 

:C5  3B 

:90  14 

:AS  A9 

:20  F3 

:95  2D 

:20  73 

:1B  85 

D0  85 

C6  20 

:81  AA 

20  81 

:29  0F 

;00  85 

1 17  A9 

FF  F0 

iFB  C9 

107  06 

:60  A9 

AA  A5 

;20  2E 

;E6  40 

;60  20 

I  20  39 

:1B  E6 

AJ3  00 

;20  2E 

;11  C9 

;29  0F 

:18  69 

:1A  85 

14  85 

40  85 

01  60 

58  60 

22  20 

65  16 

E6  17 

;AD  20 

A9  99 

28  A6 

20  02 

:A9  0F 

A9  28 

16  00 

0B  80 

D0  60 

■84  0E 

as  00 


C9  40  90 
18  69  20 
AA  AS  24 
54  C9  47 
20  0E  AA 
85  54  4C 
C6  26  F0 
D0  06  20 
A9  22  20 
2E  AA  20 
20  AA  AA 
85  lA  AS 
A2  AD  20 
D0  46  AS 
85  15  20 
A9  96  A2 

47  29  10 
00  26  20 
A9  E9  A2 
2F  A9  24 
AB  D0  0D 
AA  A9  C2 
AS  3F  F0 
20  9B  AS 
41  AC  A9 
A5  A6  27 
4C  B4  A6 
26  C6  27 
06  20  B5 
lA  33  E9 
E9  D0  85 
18  65  10 
85  0F  65 
90  lA  00 
A9  5  7  A2 

15  A2  AF 
A9  4C  D0 
CA  94  2D 
A5  AS  lA 
0F  A9  00 
60  20  73 
B5  AA  4C 
Bl  16  20 
AA  Bl  IB 
60  A9  19 

16  85  18 
FC  85  19 
FB  60  20 
59  F0  0B 
A9  4E  20 
FF  20  2E 
14  20  2E 
AA  20  85 
E6  14  00 
31  AC  A0 
AC  E6  lA 
54  60  85 
Bl  10  C9 
AA  E6  10 
00  00  EB 
C9  0A  90 

26  60  69 
20  AS  IB 

27  AS  15 
3F  60  78 

48  A9  26 
A9  99  20 
2E  AA  60 

85  16  as 

E6  19  60 

41  AA  20 

A2  AC  20 

27  20  41 

FF  60  A9 

8D  21  D0 

80  18  00 

AD  11  D0 

11  00  A9 

85  0F  84 

84  10  Bl 

F9  E6  0'f 


0A  C9 
18  69 
C5  2  5 
90  9C 
20  8F 
38  A8 
IC  A5 
AA  AA 
2E  AA 
6C  AA 

20  6C 

21  85 
9B  AS 
27  85 
0E  AA 
AD  20 
F0  15 
0E  AA 
AD  20 
46  50 
20  0E 
A2  AD 
IF  A9 
A6  IC 
53  A2 
AS  28 
A5  27 
A5  28 
AA  4C 
00  85 
11  A5 
85  10 
11  85 
04  C4 
AD  20 
20  9B 
A6  A2 
CA  10 
85  0E 
85  5F 

AS  20 

96  A9 

87  AA 

20  87 

85  26 

A9  F8 

60  20 

E4  FF 

C9  00 

D2  FF 

AA  20 

AA  AS 

C6  90 

02  E6 

00  91 

D0  02 

10  86 
FF  F0 
D0  02 
60  A2 
06  A2 
30  60 
85  21 
85  28 
A9  25 
65  01 
2B  AA 
A9  28 
18  90 
A9  93 
6C  AA 
98  A5 
AC  A9 
00  F0 
8D  20 
A9  C8 
29  10 
00  8D 

11  A0 
0E  91 
E6  11 


60 

D3 

20 

AA 

F0 

7A 

20 

35 

AA 

50 

20 

53 

24 

76 

4C 

SA 

A9 

20 

4C 

C0 

AA 

33 

IB 

09 

20 

73 

14 

E2 

20 

A9 

41 

F0 

20 

F5 

20 

FB 

41 

3F 

12 

23 

AA 

66 

20 

ac 

36 

DE 

AS 

85 

AO 

84 

20 

CB 

D0 

09 

C9 

93 

35 

18 

10 

04 

20 

6A 

AS 

A4 

11 

39 

37 

Bl 

9B 

50 

A5 

AA 

05 

40 

F8 

3C 

A5 

82 

A9 

CF 

7C 

B4 

20 

F2 

60 

D5 

AA 

El 

A9 

El 

85 

71 

E4 

7B 

F0 

60 

F0 

64 

28 

4B 

2E 

66 

15 

07 

02 

AC 

15 

6A 

lA 

CA 

E6 

C8 

11 

01 

03 

32 

E6 

80 

FF 

B5 

31 

04 

A5 

3B 

A5 

43 

A5 

07 

85 

59 

68 

A5 

A9 

8B 

18 

63 

04 

CB 

A2 

F2 

60 

F9 

A5 

A2 

0D 

Bl 

02 

F3 

00 

2A 

6D 

66 

09 

6A 

15 

AD 

00 

EB 

10 

78 

CA 

58 

1809 

1011 

1819 

1821 

1829 

1831 

1839 

1841 

1849 

1851 

1859 

1861 

1869 

1871 

1879 

1881 

1889 

1891 

1899 

IBAl 

18A9 

18B1 

18  B9 

18C1 

18C9 

1801 

18  09 

18  El 

18  E9 

18F1 

18F9 

1901 

1909 

1911 

1919 

1921 

1929 

1931 

1939 

1941 

1949 

1951 

1959 

1961 

1969 

1971 

1979 

1981 

1969 

1991 

1999 

19A1 

19A9 

19B1 

19B9 

19C1 

19C9 

1901 

1909 

19E1 

19E9 

19F1 

19F9 

1A01 

1A09 

lAll 

1A19 

1A21 

1A29 

1A31 

1A39 

1A41 

1A49 

1A51 

1A59 

1A61 

1A69 

1A71 

1A79 

1A81 

1A89 

1A91 


:D0  F2 
:28  90 
:20  53 
:9B  A5 
:0E  AA 
:5B  AA 
:A5  44 
:8E  B5 
;8D  C0 
!A2  AD 
;A2  AE 
:A2  AE 
:AE  20 
:A9  26 
:F9  A9 
:90  AF 
:39  90 
:D6  A0 
:20  8A 
:A9  C6 
:14  03 
:A9  00 
:12  85 
:03  C9 
:A0  00 
:80  00 
:A9  04 
:AA  AD 
:0D  A9 
:O0  29 
:A9  C8 
:F8  CB 
sCB  88 
:CB  A9 
:B9  80 
:F7  A9 
:80  10 
:20  D2 
:85  01 
:01  68 
:A2  03 
:FB  A0 
:F8  AS 
:59  65 
:5A  85 
:A2  02 
:4A  20 
:8A  AC 
:03  20 
:FB  09 
:20  90 
:0D  4C 
:4E  45 
:52  20 
:00  93 
:49  4E 
:45  4E 
:2A  92 
47  41 
IC  4C 
40  42 
!4S  45 
:39  39 
:0O  00 
:45  52 
:4E  49 
:45  20 
:20  4F 
:44  44 
•  4C  4F 
:00  93 
:49  53 
:49  4E 
:57  45 
:20  00 
:2A  2A 
:4F  46 
:59  20 
:00  97 
:30  30 
:31  2C 
:31  34 


60  38 
04  98 
AB  A9 
20  F9 
20  6C 
80  AC 
20  5B 
AO  A5 
AD  8E 
20  41 
20  9B 
20  9B 
9B  A5 
A2  AE 
60  A2 
CA  10 
B3  AF 
AF  38 
FF  A9 
8D  19 
A9  C6 
8D  27 
0C  80 
C6  F0 
03  80 
03  A9 
A0  CB 
02  00 
00  8  0 
02  09 
8D  88 
A0  04 
00  FA 
IF  80 
AF  99 
3C  8D 
00  8D 
FF  60 
68  60 
5S  60 
A9  00 
0F  06 

58  65 

59  85 
5A  D3 
B5  58 
8A  AC 
CA  10 
8E  AC 
30  35 
90  00 
41  53 
20  4E 

55  53 
12  IC 

56  41 
54  52 
20  54 
49  4E 
49  4E 
45  52 
44  S3 
20  4C 
00  0D 
20  42 
4E  47 
4E  SS 


52 
20 


4F  50 
IC  02 
54  49 
45  53 
45  4E 
93  02 
2A  20 
20  40 
2A  2A 
35  33 
3A  97 
30  30 
32  29 


20  F0 

E9  28 

5  5  A2 

A9  00 

AA  A5 

AD  8E 

AA  80 

45  20 

BF  AD 

AA  60 

A5  60 

AS  A9 

20  F9 

20  9B 

22  B5 

F8  A2 

CA  10 

20  8D 

EF  80 

03  A9 
80  15 
D0  85 
17  D0 
13  80 
CI  C6 
C6  80 
A2  04 

09  03 
00  00 
28  80 
02  A9 
A9  10 
A9  IE 
FF  CB 

04  D0 

10  00 
IB  00 
78  48 
48  A9 
86  56 
95  58 
56  26 
SB  85 

59  A5 

58  88 

48  4A 
68  29 
ED  AS 

60  C5 
5B  4C 
93  IF 

54  20 

55  40 
45  44 
2A  2A 
4C  49 

59  20 
52  59 
2E  00 
45  20 
20  45 
20  36 

49  40 
97  45 
45  47 
20  4C 

40  42 
00  00 

41  49 
3F  20 
0A  0D 
4E  47 
20  42 
20  00 
0A  00 
4F  55 
45  40 
2A  92 
32  38 
35  33 
3A  99 
22  93 


FF  C0 
A8  60 
AE  20 
2E  20 

43  20 
AB  AD 
B6  AD 
5B  AA 
A9  A4 
A9  10 
A9  91 
26  A2 
A9  60 
AS  20 
08  90 
22  B5 
F8  A2 
FF  78 
18  03 
9A  SD 
03  58 
0D  85 
AD  01 
C2  C6 
A9  BC 

01  03 
20  EF 
BD  02 
AD  18 
18  D0 
IC  60 
99  F9 
80  FE 
A0  07 
68  10 
A9  IC 
A9  13 
A9  24 
26  85 
85  57 
CA  10 

57  78 

58  AS 
5A  65 
10  E3 
4A  4A 
0F  20 
5B  00 
5B  F0 

02  FF 
02  0A 
4C  49 
42  45 
3A  20 
2A  20 

44  20 
2A  2A 
20  41 
00  00 
4E  55 

58  43 
33  39 
49  54 
4E  54 
49  4E 
49  4E 

45  52 
0D  41 
54  20 

59  90 
45  58 
20  4C 
45  54 
20  26 
IC  12 
54  20 
4F  52 
00  00 
30  2C 
32  36 
C7  28 
22  3B 


73 

25 

F0 

39 

68 

E2 

AO 

42 

BB 

90 

D7 

0F 

63 

lA 

DC 

8C 

5A 

7E 

FF 

ID 

65 

17 

07 

E8 

43 

35 

05 

62 

37 

IE 

E7 

E5 

EC 

C7 

5C 

4D 

DE 

8A 

3C 

0F 

76 

5E 

02 

98 

EB 

FB 

IB 

0C 

A3 

14 

IE 

CF 

E6 

C4 

43 

3B 

AB 

30 

C0 

OF 

2B 

4F 

46 

F0 

C4 

10 

67 

E3 

02 

19 

5  0 

2A 

7C 

77 

FE 

15 

FF 

05 

6C 

AD 

5A 

23 


April  1  P&6     COMPUTEI      93 


1A99 

lAAl 

1AA9 

lABl 

1AB9 

lACl 

1AC9 

lADl 

1AD9 

lAEl 

1AE9: 

lAFl  ; 

lAF9i 

lB0i; 

1B09; 

IBll! 

1B19: 
1B21: 
1B29; 

1B31  ; 

1B39; 

1B41  ; 

1B49! 

1B51  ; 

1B59J 

1B61: 

1B69; 

1B71  : 

1B79: 

IBSl: 

1B89: 

1B91: 

1B99: 

IBAl  : 

1BA9  : 

IBBl: 

1BB9: 

IBCl: 

1BC9: 

IBDi: 

1BD9: 

IBEl  : 

1BE9  : 

IBFl: 

1BF9: 

lC0l! 

1C09: 

ICll: 

1C19! 

1C21: 

1C29: 

1C31  : 

1C39: 

1C41  : 

1C49: 

1C51  : 

1C59: 

1C61: 

1C69: 

1C71: 

lC79i 

1C81; 

lC89i 

1C91: 

lC99i 

ICAli 

lCA9i 

ICBli 

lCB9i 

ICCli 

1CC9: 

ICDl: 

1CD9: 

ICEl  I 

lCE9i 

ICFl 

1CF9; 

1D01 

1D09 


:00  97 
:92  31 
i35  33 
:3A  97 
:30  30 
;34  2C 
;32  36 
;32  36 
00  97 
iC2  28 
B0  31 
37  30 
37  30 
97  35 
28  3  5 
36  34 
20  4C 
20  S3 
m   45 

44  20 
4F  55 

45  20 
54  49 
4F  44 

42  41 
4E  44 
54  45 
3F  20 
4B  47 

26  20 
20  43 
20  59 
44  20 
4F  20 

46  46 
02  05 
20  4B 
33  20 
4C  45 
53  02 
00  0D 
04  B7 
41  43 

44  20 

45  52 
02  04 
6C  02 
0D  0D 
50  52 
50  41 
52  20 

43  52 
92  00 
87  B8 
18  lA 
3B  A2 
41  Al 
13  A2 
A2  A6 
7D  Al 
IE  IF 
99  9A 
B3  50 
A4  20 
9  3  C6 
20  93 
C6  A9 

27  35 
IB  C6 
13  AD 
D0  AD 
D0  8D 

,0B  F0 

8D  DB 

A0  04 

DC  C6 

D9  EA 

:68  68 

;49  45 


31  39 

39  38 

32  38 
35  33 
3A  97 
30  30 
35  2C 
35  29 
35  33 

35  33 

36  00 
2C  C2 
29  AF 

33  32 
33  32 
00  0D 
49  4E 
45  54 

58  54 

42  41 
4E  44 
4F  52 

43  4F 
45  3F 
43  4B 
20  52 
52  53 

59  9D 
52  4F 

42  4F 
4F  4C 
9D  00 
4C  49 
54  55 

00  00 
20  50 
45  59 
54  4F 
20  43 
05  20 
97  02 
70  0D 
4B  47 
52  45 
20  20 
20  A7 

04  AF 
0D  12 
45  53 

43  45 
57  4F 
45  45 
89  8A 

02  14 
0B  03 
2B  Al 
Al  Al 
8F  A4 

05  Al 
94  90 
9E  81 
9B  00 
F2  20 
9  3  C6 
20  33 
C6  20 

26  85 

01  68 
13  D0 

27  D0 
2D  D0 
2E  D0 

03  4C 
C6  A5 
AD  DB 
CE  DB 
C6  D0 
4C  70 

40  AA 


38  2C 
2C  31 
32  2C 
32  38 

35  33 
00  97 
C2  28 
AF  31 
32  37 
32  37 
97  35 
28  35 
32  33 

36  35 
36  35 
0D  41 
45  20 
20  55 
45  4E 
43  4B 
20  4D 
0D  4D 
4C  52 
20  59 
47  52 
45  47 
20  31 
00  42 
55  4E 
52  44 
4F  52 
0D  0D 
4E  45 
52  4E 
93  0D 

52  45 

53  20 
20  43 
4F  4C 
92  02 
ID  20 
02  05 
52  4F 
47  49 
30  20 
0D  02 
BA  00 
IF  02 


53 
27 


52  4B 
4E  02 
SB  8C 
0D  0F 
15  Al 
CD  Al 
50  Al 
15  A4 
5F  Al 
05  10 


95 
63 


8E  C6 
4C  69 
A5  4C 
13  A6 
01  60 
60  A5 
17  A9 
49  01 
49  01 
4C  31 
SB  E3 
7B  80 
C6  D0 
C6  AD 
DE  88 
06  47 
00  00 


30  3A  7A 

00  97  03 
30  30  El 
33  2C  C7 

32  38  E5 
35  33  20 
35  33  62 
39  31  CB 
30  2C  C8 

30  29  53 

33  32  B3 
33  32  2E 
39  00  C6 
2C  C2  7B 
29  80  B3 
44  44  7A 

54  4F  23 
50  0D  2E 
44  45  32 
47  52  16 
4F  44  93 

55  40  05 
20  4D  92 
9D  00  7E 
4F  55  95 
49  53  26 
2D  33  ED 
41  43  23 

44  20  F2 

45  52  90 
53  3F  F8 
41  44  45 
20  54  34 
20  4F  C2 
IC  12  51 
53  53  D4 

31  20  BB 
59  43  ID 
4F  52  4C 
03  00  84 
6F  02  B0 
20  42  60 
55  4E  38 
53  54  4B 
20  A5  55 
ID  20  84 
0D  00  97 
06  20  03 
27  53  A8 

46  4F  24 
20  53  OF 
05  20  41 
85  86  B4 
08  10  A5 
35  Al  E0 
B0  Al  47 
03  Al  99 
IF  A6  AA 
66  Al  47 
9F  9C  E0 
97  98  4  3 
8B  00  02 
4C  ID  55 
FE  20  29 
8E  C6  C6 
4C  BE  04 
46  A9  90 
12  F0  34 
14  85  AD 
80  27  71 
80  20  IF 
EA  E0  66 
A5  7A  AA 
DC  C6  90 
03  CE  35 

01  08  OS 
10  EA  E3 
45  4E  46 
00  00  EB 


Screen 
Saver 

64 


Stephen  E,  Masters 


Here  are  two  fast,  useful  routines  for 

storing  and  retrieving  high-resolution 
graphics  screens  with  a  disk  drive. 
They  work  with  the  Commodore  64  or 
Commodore  128  in  64  mode. 


Taking  advantage  of  the  Commo- 
dore 64's  high-resolution  graphics 
can  be  a  time-consuming  process  at 
best.  Even  with  extra  commands 
such  as  those  found  in  Simons' 
BASIC,  it  may  take  many  minutes 
or  even  hours  to  plot  a  detailed 
screen.  Utilities  for  dumping  a 
high-resolution  screen  to  your  dot- 
matrix  printer  are  readily  available. 
At  times,  however,  you  may  wish 
to  save  your  graphics  screen  in  a 
disk  file  so  you  can  display  it  later 
without  rerunning  the  program  that 
created  it.  And  if  you  own  an  Oki- 
mate  10  or  similar  color  printer,  the 
ability  to  save  multicolor  graphics 
screens  is  particularly  useful. 

"Screen  Saver  64"  provides 
two  machine  language  (ML)  rou- 
tines that  let  you  quickly  save  and 
retrieve  hi-res  graphics  screens — 
both    standard    and    multicolor — 


from  disk.  Though  they're  written 
in  ML,  you  can  use  them  without 
knowing  the  ins  and  outs  of  ML 
yourself.  And  we've  included  two 
demonstration  programs  that  show 
exactly  how  to  use  the  ML  routines 
for  real  applications. 

To  get  started,  type  in  and  save 
Programs  1  and  2.  Program  1  puts 
the  screen  save  routine  into  memo- 
ry, and  Program  2  creates  the 
screen  retrieval  routine.  Since  both 
ML  routines  go  into  the  same  mem- 
ory area,  they  must  be  used  sepa- 
rately. If  you  have  an  ML  monitor 
and  wish  to  examine  the  routines, 
note  that  each  is  broken  into  two 
parts,  located  from  memory  loca- 
tions 679-738  and  828-1023 
(decimal). 

Saving  A  Graphics  Screen 

Here  are  the  steps  for  saving  a 
graphics  screen  with  Screen  Saver 
64: 

1.  Run  Program  1  to  place  the  ML 
screen  save  routine  in  memory. 

2.  Create  your  hi-res  or  multicolor 
screen  as  usual.  If  you  don't  know 
how  to  do  this,  the  Commodore  64 


94     COMPUTEI     April  1986 


Programmer's  Reference  Guide  and 
many  other  books  explain  the  re- 
quired steps.  Program  3  (see  below) 
contains  a  simple  demonstration. 

3.  Execute  a  statement  like  OPEN 
2,8,2,"fUename,F,W'  to  open  a  disk 
file  for  writing  (replace  filename 
with  the  name  of  your  own  file). 
You  must  open  the  file  as  a  PRG 
(program  format)  file  using  the  ,P 
suffix  as  shown  above.  The  ,W  suf- 
fix indicates  that  you're  opening  the 
file  for  a  write  operation,  and  the 
first  numeral  2  sets  the  logical  file 
number  (2  in  this  case)  for  that  file. 

4.  Execute  SYS  1007  to  activate  the 
ML  save  routine.  This  must  be  done 
while  you  are  in  hi-res  or  multicolor 
mode.  The  ML  routine  finds  the  cur- 
rently defined  graphics  screen  and 
associated  color  memory,  and 
stores  their  contents  in  the  disk  file. 

5.  Execute  a  statement  like  CLOSE 
2  to  close  the  file.  It  is  very  impor- 
tant that  you  end  the  procedure  by 
CLOSEing  the  file,  specifying  the 
same  logical  file  number  (2  in  this 
case)  which  was  used  to  open  it.  If 
you  omit  this  vital  step,  you  may 
end  up  with  a  poison  (unclosed)  file 
on  the  disk  that  could  damage  other 
files  or  render  the  whole  disk 
unreadable. 

Retrieving  A  Graphics 
Screen 

Once  you  have  saved  the  screen  to 
disk,  it's  easy  to  retrieve.  Here  are 
the  steps  to  follow  for  bringing  a 
graphics  screen  back  into  memory: 

1.  Run  Program  2  to  put  the  ML 
retrieval  routine  in  memory, 

2.  Perform  the  steps  needed  to  en- 
ter the  appropriate  hi-res  or  multi- 
color graphics  mode. 

3.  Execute  a  statement  like  OPEN 
2,8,2,"filename,P,R"  to  open  the 
disk  file  for  reading  (input).  Again, 
the  ,P  suffix  specifies  a  PRG  file, 
and  the  ,R  suffix  opens  the  file  for 
reading. 

4.  Execute  SYS  881.  The  ML  routine 
loads  the  graphics  data  back  into 
the  right  memory  locations. 

5.  Execute  a  statement  like  CLOSE 
2  to  close  the  disk  file.  Again,  you 
should  use  the  same  logical  file 
number  (2  in  this  case)  used  when 
opening  the  file. 

6.  At  this  point  you  can  continue 


with  a  BASIC  program  or  do  what- 
ever else  you  like. 

Graphics  Demonstrations 

Programs  3  and  4  contain  practical 
demonstrations  of  how  to  use  these 
two  routines  from  BASIC.  Type  in 
and  save  both  programs,  then  load 
and  run  Program  1  to  put  the  ML 
save  routine  in  memory.  Now  load 
and  run  Program  3.  This  program 
uses  the  hi-res  drawing  example 
from  pages  123-126  in  the  Commo- 
dore Si  Programmer's  Reference 
Guide.  Lines  110-140  define  the  hi- 
res screen  and  color  memory  to 
start  at  locations  8192  and  1024, 
respectively,  then  clear  the  graphics 
screen.  Lines  150-230  draw  a  sim- 
ple sine  wave  pattern.  (Be  patient;  it 
takes  a  few  minutes  to  complete  the 
drawing.)  Line  270  opens  the  disk 
file  using  2  as  the  logical  file  num- 
ber and  SINEWAVE.HIRES  as  the 
filename.  After  checking  the  disk 
error  channel,  the  program  calls  the 
ML  save  routine. 

The  sine  wave  disappears  as 
the  hi-res  memory  is  moved  tempo- 
rarily to  a  new  location  and  stored 
in  the  disk  file.  Then  the  routine 
moves  the  picture  back  to  its  origi- 
nal location,  saves  color  memory, 
and  returns  control  to  BASIC.  After 
checking  the  error  channel  again, 
the  BASIC  program  restores  the 
normal  screen  display  and  ends. 

Program  4  shows  how  to  use 
the  ML  retrieval  routine.  Since  it 
looks  for  a  file  named  SINEWAVE- 
.HIRES on  the  disk,  you  can  run  it 
only  after  you've  used  Program  3  to 
create  the  file.  Run  Program  2  to 
put  the  ML  retrieval  routine  in 
memory,  then  load  and  run  Pro- 
gram 4.  Lines  110-130  define  the 
hi-res  screen  starting  at  location 
24576,  a  different  area  than  the  one 
it  was  saved  from.  Lines  140-150 
fill  the  screen  with  a  uniform  pat- 
tern. (Note  that  this  is  done  only  for 
the  purpose  of  demonstration,  to 
confirm  that  the  retrieval  routine 
puts  new  information  on  the 
screen.  It  is  not  necessary  to  clear 
the  graphics  screen  before  using 
this  routine.) 

Lines  160-190  open  a  disk  file 
for  reading,  using  the  same  name  as 
Program  3  (SINEWAVE.HIRES), 
After  checking  the  error  channel 
(180-190),  the  retrieval  routine  is 
called  with  SYS   881.   The  hi-res 


screen  is  restored  right  before  your 
eyes;  First  the  graphics  information 
appears,  then  color  memory  is 
brought  in  as  well.  After  a  brief 
pause,  the  program  restores  the 
screen  to  normal  and  ends. 

Inside  The  i\AL  Routines 

The  ML  save  routine  saves  the  cur- 
rently defined  graphics  screen  and 
its  associated  color  memory  wher- 
ever they  are  located — even  if  the 
hi-res  screen  is  stored  in  the  RAM 
underneath  a  ROM  area.  The  ML 
retrieval  routine  brings  the  stored 
screen  back  into  whatever  area  you 
have  currently  defined  as  the 
graphics  screen,  even  if  that's  a  dif- 
ferent location  from  the  area  from 
which  it  was  saved.  This  lets  you 
create  and  store  a  complex  graphics 
display  using  one  particular  graph- 
ics aid  (Simons'  BASIC,  etc.)  and 
retrieve  it  for  use  by  any  other 
program. 

Since  sprites  are  independent 
of  other  graphics,  these  routines 
can't  store  or  retrieve  sprite  shapes 
that  appear  on  the  screen. 

To  make  this  routine  compati- 
ble with  as  many  programs  as  pos- 
sible, memory  usage  is  restricted  to 
three  areas.  It  uses  memory  loca- 
tions 679-738  (normally  unused) 
and  828-1023  (the  cassette  buffer) 
to  store  the  routines,  and  also  zero- 
page  locations  2  and  251-254.  To 
save  a  screen,  the  ML  routine  first 
looks  in  locations  56576  and  53272 
to  locate  the  graphics  screen  and 
normal  screen  memory  (which  be- 
comes the  hi-res  color  memory).  It 
then  swaps  the  8K  bytes  of  hi-res 
RAM  memory  with  the  contents  of 
locations  24576-32767  ($6000- 
$7FFF).  This  is  done  by  "turning 
off"  the  computer's  ROM  chips 
temporarily  so  the  swapping  rou- 
tine can  see  hi-res  memory  no  mat- 
ter where  it's  located.  Then  the 
routine  switches  the  Kernal  ROM 
back  in  to  write  the  8,000  bytes  of 
hi-res  information  to  the  disk  file, 
and  moves  the  hi-res  screen  back  to 
its  original  location.  The  1,000-byte 
screen  memory  area  is  written  di- 
rectly to  the  disk  file. 

Note  that  since  no  memory 
swapping  is  done  for  color  memo- 
ry, this  part  of  your  screen  must  be 
located  in  a  memory  area  that's  not 
normally  hidden  by  ROM. 

Finally,  the  normal  color  mem- 


April  1986     COMPUTE!     95 


ory  at  55296-56295  {used  in  multi- 

PX 

350 

DATA208,242,2  30,252,208 

Program  3:  Screen  Saver 

color  mode)  as  well  as  the  screen 

MX 

360 

,238, 200 

DATA15  2,201,64,208,2  32, 

Demo 

background  byte  at  53281  is  written 

96, 160,0 

to  disk.  The  final  disk  file  is  10,003 

FC 

370 

DATA132,251,173,168,2,1 

DG 

100 

REM    PROGRAM    3    SCREEN    SA 
VE    DEMO 
BASE=2*4096:POKE5327  2,P 

bytes  (40  blocks)  long.  Two  extra 

FA 

380 

33,252,177 

DATA251, 32,210,255, 165, 

HS 

110 

bytes  are  added  at  the  beginning  of 

252 , 205, 167 

EEKC53272)OR8 

the  file  to  make  it  compatible  with 

SH 

390 

DATA2 , 240 , 7 , 200 , 208 ,2  41 

BH 

120 

POKE5326  5,PEEK{53265)OR 

32 

FOR    I=BASE    TO    BASE+7999 

version  3.0  of  the  Okimate  Color 
Print  program. 

MD 

400 

,230,252 
DATA208,237,200,152,201 

BK 

130 

,232,208 

: POKEI, 0:NEXT 

The  retrieval  routine  works  in 

JB 

410 

DATA2 3 1,160, 0,1 32, 2 5 1,1 

KD 

140 

FOR    I=1024TO2023:POKEI, 

reverse,  finding  where  the  graphics 
screen  and  color  memory  are  locat- 

XS 

420 

69,216,133 

DATA2S2, 177,251,32,210, 

255     165    252 

HS 

RF 

150 
160 

3 : NEXT 

FOR    X=0    TO    319    STEP. 5 

Y=INT(90+80*SIN(X/10)) 

ed    in    the    current    configuration, 

JD 

430 

*-  -J  -i  1    X,^  -J  f    .£-  ^  £. 

DATA201,219,240,7,200,2 

KR 

170 

CH=INT(X/8) 

then  restoring   everything   to   the 

08,242,230 

QC 
RF 
AR 

180 
190 
200 

RO=INT(Y/8) 

LN=YAND7 

BY=BASE+RO*320+e*CH+LN 

correct    memory    locations.    Since 

XE 

440 

DATA252,208,238,200,152 

,201,232 

DATA208,2  32 , 17  3 , 33 , 208, 

RAM  can  be  POKEd  even  if  it's 

XC 

450 

GX 

210 

BI=7-CXAND7) 

under  ROM,  no  memory  swapping 

32,210,255 

BX 

220 

POKEBY , PEEK ( BY ) OR ( 2  T  BI ) 

is  required  and  the  contents  of  the 

PH 

460 

DATA32,204,2  55,96,32, 17 

6,2,32,60 

DATA3,3  2,113,3,32,60,3, 

AP 
EG 

230 
240 

NEXT    X 
POKE1024,16 

disk  file  are  moved  directly  into  the 

MX 

470 

GH 

250 

FOR    1=1(2    SPACES 3T0    100 

appropriate  memory  areas. 

32,  163,3,96 

BM 
JK 

260 
270 

0:NEXT(2    SPACES] I 

OPEN15,8,15 

OPEN2,8,2, "SINEWAVE.HIR 

For  instrucfions  on  entering  these  listings. 

ES,P,W" 

please  refer  to  "COMPUTEI's  Guide  to  Typing 
In  Programs"  in  this  issue  of  COMPUTE!. 

Program  2:  Screen  Retriever 

RJ 
AG 

280 
290 

1NPUT#15,Z1,Z25,Z3,Z4 
IF    Z1<>0    THEN    CL0SE2:CL 

64 

0SE15:PRINT    Z1;Z25;Z3;Z 

Program  1 :  Screen  Saver  64 

PR 

100 

REM    PROGRAM    2    SCREEN    RE 

MX 

300 

4:GOTO350 
SYS    100  7 

CS    100    REM    PROGRAM    1    SCREEN    SA 

TRIEVE 

AS 

310 

CL0SE2 

VER    64 

PE 

110 

SU=0 :FORI-6a8T073a ;READ 

AN 

320 

INPUT#15,Z1,Z25,Z3,Z4 

PE    110    SU=0iFORI=688TO73a:READ 

X:SU=SU+X:POKEI ,X:NEXT 

RS 

330 

IF    Z1<>0    THEN    CL0SE15:P 

X:SU=SU+X:POKEI,X:NEXT 

HE 

120 

IFSU<>48  5  5THENPRINT"ERR 

RINT    ZlrZ25;Z3,-Z4 

CK    120    IFSU<>4855THENPRINT"ERR 

OR    IN    DATA    IN    LINES    160 

MH 

340 

FOR    1=1    TO    1000:NEXT    I 

OR    IN    DATA    IN    LINES    170 

-180" :STOP 

MM 

350 

POKES3265 ,PEEK( 53265 )AN 

-220": STOP 

JQ 

130 

SU=0;FORI=881TO1004:REA 

D    223 

QX    130    SU=0:FORI=82eTO1022:REA 

DX :SU=SU+X: POKEI, X: NEXT 

DF 

360 

POKE53272,PEEK(53272) 

DX : SU=SU+X  i POKEI , X : NEXT 

XK 

140 

IFSU<>21290THENPRINT"ER 

(2    SPACES }AND    247 

PQ    140    IFSU<>31598THENPRINT"ER 

ROR    IN    DATA    IN    LINES    19 

DR 

370 

END 

ROR    IH    DATA    IN    LINES    24 

0-2  50" :STOP 

0-470": STOP 

HM 

150 

PRINT "SCREEN    RETRIEVE    I 

SR    150    PRINT"SCREEN    SAVE    INSTA 

NSTALLED";END 

LLED":END 

KB 

160 

DATA17  3,0,221,41,3,7  3,3 

Proaram  4:  Screen  Retriever  1 

MS    170    DATA173,0,221,41,3,73,3 

,10,10,10,10,10,10, 133, 

r\.^ 

*^ 

,10,10,10 

254,173,24,208 

Demo 

QP    180    DATA10, 10, 10,133,254, 17 

3,24,208 
QJ    190    DATA41,8,10,10,101,2  54, 

133,2, 105 

PD 

170 

DATA41,8,10,10,101,254, 

XF 

100 

REM    PROGRAM    4    SCREEN    RE 

133,2,105,31,141,169,2, 
173,24,208,41,240 

PH 

110 

TRIEVE    DEMO 
POKE56578,PEEK(56578)    O 

DA    200    DATA3I,141,169,2,173,24 

KP 

180 

DAT A74, 74, 2 34, 234,  101,2 

R    3:P0KE    555 76 ,( PEEK ( 56 

,  208, 41 ,240 

54,141,1^8,2,105,3,141, 

576)AND252)OR    2 

DB    210    DATA74,74,234,234,101,2 

167,2,96 

HD 

120 

BASE=6  *  4096 : POKES 3  2  7  2  ,  P 

54,141,168 

PC 

190 

DATA32,176,2,162,2,32,1 

EEK(53  27  2)ORa 

XM    220    DATA2,105,3,141,167,2,9 

98,255,32,207,255,32,20 

FG 

130 

POKES 3 26 5, PEEK (53 26 5) OR 

6 

7,255,234,160,0,132,251 

32 

KB    240    DATA160,0,132,251,132,2 

AH 

200 

DATA165,2,133,252,32,20 

FM 

140 

FOR    I=BASE    TO    BA3E+7999 

53, 165,2,133 

7,255,145,251,165,252,2 

:POKE    I,66:NEXT 

PH    250    DATA252,169,96,133,254, 

05,169,2,240,7,200,208 

CS 

150 

FOR    1=16384+1024    TO    163 

120, 165,1,72 

QK 

210 

DATA241,230,252,20e,237 

84+2023:POKE    I,77;NEXT 

MG    260    DATA41, 253, 133, 1,177, 25 

,200,152,201,64,208,2  31 

GE 

160 

OPEN15,8,15 

1,  170,177 

, 160,0,132,251, 173, 168, 

QJ 

170 

OP EN2, 8, 2, "SINEWAVE.HIR 

DA    270    DATA253,145,251,138,145 

2 

ES,P,R" 

,253,200 

FR 

220 

DATA13  3,2  5  2,3  2,207,255, 

CC 

180 

INPUTS  15, Z1,Z2$,Z3,Z4 

RK    280    DATA20B,243,230,252,23e 

145,251,165,252,205,167 

GG 

190 

IF    Z1<>0    THEN    CL0SE2:CL 

,254,165 

,2,240,7,200,208,241,23 

0SE15:PRINT    Zl;Z25;Z3rZ 

HK    290    DATA254,201,12e,208,233 

0 

4:GOTO230 

,104,133,1 

AB 

230 

DATA252,208,237,200,152 

RS 

200 

SYS    881 

JH    300    DATA88, 234, 234, 234, 96,1 

,201,2  32,208,2  31,160,0, 

PJ 

210 

CLOSE2 

62,2,32,201 

132,251,169,216,133,252 

MC 

220 

FOR    1=1    TO    2500:NEXT    I 

MD    310    DATA255,169,0,32,210,25 

,32 

DF 

230 

POKE56576, (PEEK ( 56576 ) A 

5,165,2,32 

JE 

240 

DATA207,255,145,251,165 

ND252)    OR    3 

SX    320    DATA210,255,160,0,132,2 

,252,201,219,240,7,200, 

FR 

240 

POKE5327  2,PEEK(5327  2)AN 

51,169,96 

208,242,230,252,208,238 

D247 

RK    330    DATA133,252,234,234,177 

,200 

HD 

250 

POKE53265,PEEK(5326  5)AN 

,251 ,32,210 

SH 

250 

DAT A152, 201, 232, 208, 232 

D223 

XS    340    DATA255,165,252,201,127 

,32,207,255,141,33,208, 

@ 

,240,7,200 

32,204,255,96,999 

96     COMPUTE!      April  1966 


Atari  FontMaker 


Charles  Bronnon,  Program  Editor 


"fontMaker"  simplifies  the  design  of 
character  sets  for  all  text  modes  on 
Atari  400/800,  XL,  and  XE  comput- 
ers. Although  programmers  will  find 
FontMaker  a  valuable  addition  to 
their  utility  library,  nonprogrammers 
can  also  benefit.  Next  month,  we 
show  how  to  use  FontMaker  to  cus- 
tomize Atari  SpeedScript's  special 
character  set.  Whether  you  want  Old 
English  or  a  computer  age  font,  Font- 
Maker  has  the  tools  you  need  to  ex- 
press your  creativity.  It  requires  at 
least  16K  RAM;  disk  drive 
recommended. 


"FontMaker"  is  a  sophisticated 
character  editor  written  completely 
in  machine  language  to  work  with 
all  Atari  text  modes.  Even  though  a 
character  set  (or  font)  editor  is  a 
handy  utility  for  programmers,  you 
don't  need  to  know  anything  about 
machine  language  or  programming 
to  have  fun  with  it.  We  include  a 
simple  subroutine  that  lets  you  load 
and  merge  character  sets  with  your 
own  BASIC  programs.  And  next 
month,  we'll  show  how  to  use  the 
special  ANTIC  3  character  sets  with 
the  Atari  version  of  our  SpeedScript 
word  processor  (COMPUTE!,  March 
1986). 

Since  FontMaker  is  written  in 
machine  language  for  speed  and 
compactness,  you  need  to  type  it  in 
with  MLX,  our  machine  language 
editor.  See  the  MLX  article  else- 
where in  this  issue  for  instructions 
on  typing  in  and  using  MLX  to  en- 
ter machine  language  programs. 

When  you  run  MLX,  answer 


the  first  three  screen  prompts  like 
this: 

Starting  Address:  122BB 
Ending  Address:  14SB7 
Run/Inil  Address:  12288 

Next  you'll  be  asked  "Tape  or 
Disk?".  Although  FontMaker  can 
load  as  a  boot  tape,  it's  much  easier 
to  use  with  a  disk  drive.  If  you  press 
D  for  Disk,  you'll  be  asked  "Boot 
Disk  or  Binary  File?".  Press  F  to 
select  binary  file,  FontMaker  will 
run  from  a  boot  disk,  but  without 
DOS,  there's  no  way  to  save  or  load 
character  sets.  So  make  sure  you 
select  F,  since  MLX  can't  convert 
from  a  boot  disk  to  a  binary  file. 

At  the  first  screen  prompt, 
12288:,  start  typing  the  data  from 
Program  1 .  See  the  MLX  article  for  a 
list  of  commands  that  let  you  type 
in  a  program  in  several  sessions. 
When  you've  typed  the  last  line, 
MLX  prompts  you  for  a  disk  file- 
name. This  will  be  the  name  under 
which  FontMaker  is  saved  to  disk. 
If  you're  using  Atari  DOS  2. OS,  2.5, 
or  3.0,  you  may  use  the  filename 
AUTORUN.SYS.  This  allows  Font- 
Maker  to  automatically  load  and 
run  when  you  turn  on  the  computer 
with  the  disk  in  the  drive.  Be  sure 
this  disk  also  contains  the  DOS 
files. 

If  you  want  to  prevent  loading 
FontMaker  automatically  (especial- 
ly if  you  haven't  finished  typing  it 
but  want  to  save  your  preliminary 
typing),  you  can  rename  AUTO- 
RUN.SYS to  some  other  name.  You 
can  also  load  FontMaker  from  DOS 
2. OS  or  2,5  with  menu  selection  L.  If 
you're  using  another  DOS,  such  as 
OS/A-f-  or  DOS  XL,  you  may  be 
able  to  save  FontMaker  with  a  dif- 
ferent name,  such  as  FONT.COM 


and  type  the  command  FONT  to 
run  FontMaker. 

Editing  Characters 

Assuming  you've  typed  in  and 
saved  FontMaker,  run  it  and  follow 
along  with  this  article.  You'll  see  a 
screen  with  a  colorful  8X8  grid,  a 
list  of  brief  instructions,  and  four 
rows  of  characters  at  the  bottom  of 
the  screen  (see  screen  photo). 

When  FontMaker  starts,  it  asks 
you  to  pick  a  character.  You  can  edit 
one  character  at  a  time.  When 
you're  asked  to  select  a  character, 
you  can  use  the  joystick  to  move  a 
cursor  around  in  the  four  rows  of 
characters,  then  press  the  fire  but- 
ton to  select  the  character  high- 
lighted by  the  cursor.  Or  you  can 
simply  press  the  keyboard  key  cor- 
responding to  the  character.  Action 
then  shifts  to  the  8  X  8  character 
editing  grid. 

Within  the  grid,  you  can  move 
the  editing  cursor  (a  hollow  white 
box)  with  either  the  joystick  or  the 
cursor  keys.  You  don't  need  to  use 
CTRL  with  the  cursor  keys  to  move 
the  cursor — CTRL-cursor  up/ 
down/  left/right  and  SHIFT-cursor 
up/down/left/right  are  reserved 
for  other  features.  When  drawing  in 
the  character  grid,  press  the  fire 
button  or  the  space  bar  to  reverse 
(toggle)  the  dot  at  the  cursor  posi- 
tion. Previously  set  dots  are  turned 
off,  and  blank  spaces  are  turned  on. 
You  can  hold  down  the  fire  button 
while  you  move  the  joystick  to 
draw  lines  and  figures. 

As  you  change  the  grid,  you 
can  see  the  character  in  actual  size 
in  the  character  set  window.  The 
cursor  highlights  (reverses)  the  se- 
lected character,  but  a  row  of  the 


April  1986     COMPUTEI     97 


?.-  t   2  Graph! 
I  t   a     3  Rotate 


phiCS  Mod*  i  Pick 

ate        i  Mlrrfi- 
y  ^  Bytes 


J    i<afy  ^   " 

gsav*    font  3  I. 

aas  exit  to  t>o> 


"Afari  FontMaker"  lets  you  design  your 
own  custom  character  fonts  for  any 
Atari  text  mode. 


character  you're  editing  is  also  dis- 
played. In  additiorx,  there's  a  sam- 
ple of  text  ("The  quick  brown  fox 
jumped  over  the  lazy  dogs")  so  you 
can  judge  relative  character  height 
and  spacing. 

To  create  an  entirely  new  char- 
acter, you  may  want  to  start  by 
pressing  SHIFT-CLEAR  to  erase  the 
existing  character  pattern.  This 
gives  you  a  clean  canvas  for  your 
design. 

Undo  Your  Mistakes 

If  you  don't  like  a  change  you've 
made,  press  U  to  undo  all  the 
changes  made  since  you've  selected 
the  character.  Press  U  again  to  undo 
the  undo,  restoring  the  change 
you've  made.  You  can  press  F  to  fix 
a  character,  recopying  its  image 
from  the  standard  character  set 
stored  in  the  computer's  Read  Only 
Memory  (ROM).  It's  important  to 
distinguish  between  these  options: 
U  reverts  to  the  previous  character 
image,  F  always  gives  you  the  ROM 
image.  If  you  change  the  letter  A  to 
a  spaceship,  change  B  to  a  rocket, 
then  go  back  to  A  and  change  the 
spaceship  to  an  alien,  U  switches 
between  the  alien  and  the  space- 
ship; F  gives  you  the  pattern  for  the 
letter  A.  Beware  that  you  can't  undo 
the  Fix  command. 

If  you  hold  down  the  OPTION 
button  while  pressing  F,  the  entire 
character  set  is  fixed,  recopied  from 
ROM.  This  wipes  out  any  changes 
you  have  made  to  the  character  set, 
so  be  careful. 

To  select  another  character  to 
edit,  press  P  and  use  the  joystick  or 
keyboard  to  pick  the  new  character. 
In  some  text  modes  (see  the  G  com- 
mand below),  the  joystick  cursor 
may  seem  to  move  strangely.   It 


consistently  moves  up  or  down  be- 
tween rows  of  32  characters.  Since 
there  are  only  20  characters  per  line 
in  modes  1  and  2,  these  rows  wrap 
around  the  right  margin.  You  move 
left  and  right  within  a  row  of  char- 
acters, and  up  and  down  between 
rows  of  32  characters. 

FontMaker  can  display  the 
character  set  in  all  Atari  text  modes. 
These  are  GRAPHICS  0  (the  de- 
fault text  mode),  "GRAPHICS  OVi" 
(technically  known  as  ANTIC  3,  a 
nine-line  true-descender  mode), 
multicolor  ANTIC  mode  4,  multi- 
color ANTIC  mode  5,  GRAPHICS 
1,  and  GRAPHICS  2.  Press  G  to 
cycle  through  these  modes. 

The  SpeedScript 
Character  Mode 

If  you've  never  heard  of  the  ANTIC 
text  modes,  don't  fret;  they're  not 
normally  accessible  from  BASIC. 
The  Atari  SpeedScript  word  proces- 
sor (and,  incidentally,  the  PaperClip 
word  processor  from  Batteries  In- 
cluded) uses  the  ANTIC  3  mode  for 
large,  readable  characters.  ANTIC 
3,  nicknamed  GRAPHICS  OVi,  is  a 
special  40-column  mode  that  lets 
you  define  characters  within  an  8  X 
10  character  space.  Other  Atari  text 
modes  have  only  an  8  X  8  charac- 
ter grid.  This  means  that  ANTIC  3 
characters  can  have  true  descend- 
ers. (A  descender  is  the  part  of  a 
character  that  drops  below  the  line 
of  type,  such  as  the  tail  on  a  lower- 
case y  or  j.) 

You  still  use  just  eight  rows  to 
define  a  character  in  ANTIC  3,  but 
the  character  is  positioned  within 
ten  screen  scan  lines.  For  uppercase 
characters,  the  eight  rows  of  the 
character,  grid  are  displayed  in  rows 
1-8  of  the  character  matrix,  with 
two  blank  lines  at  the  bottom  of 
each  character,  reserving  space  for 
lowercase  descenders.  For  lower- 
case characters,  the  first  two  lines  of 
the  character  grid  are  forced  blank. 
The  first  two  rows  of  the  character 
definition  are  actually  displayed  at 
lines  9  and  10  of  the  character 
space,  making  it  easy  to  reserve 
space  for  the  descenders.  The  third 
through  eighth  rows  of  the  charac- 
ter are  displayed  starting  at  the 
third  line  of  the  character  space. 

This  may  sound  confusing,  but 
fortunately  FontMaker  lets  you  de- 
sign ANTIC  3  characters  without 


having  to  mentally  translate  what 
you  see  on  the  grid  to  what  the 
character  should  look  like.  (How- 
ever, the  Rotate  option  seems  to 
work  strangely  in  this  mode  due  to 
the  unusual  memory  configuration 
used  by  ANTIC  3  characters.)  just 
be  aware  that  lowercase  characters 
are  actually  written  two  lines  lower 
on  the  screen  than  uppercase  char- 
acters. If  you  start  with  the  normal 
character  set,  you'll  need  to  use  the 
roll  and  shift  options  to  align  the 
characters.  Using  the  roll  or  shift 
commands  (see  below),  roll  the 
lowercase  characters  down  two 
lines  and  all  the  uppercase  charac- 
ters down  by  one  line.  While  you 
work,  refer  to  the  "quick  brown 
fox"  sentence  to  see  that  all  the 
characters  line  up  properly. 

Since  there  are  forced  blank 
lines  for  uppercase  characters,  you 
can  use  the  lower  seven  lines  to 
define  a  large  character.  Leave  the 
top  line  blank  if  you  want  two-line 
descenders.  The  normal  Atari  char- 
acter set  only  uses  six  columns  for  a 
character,  giving  two  pixel  spaces 
between  each  character  on  the 
screen.  A  larger  character  can  use 
up  to  seven  columns,  leaving  the 
last  column  blank  to  keep  charac- 
ters from  running  into  each  other. 
When  designing  some  character 
sets,  though,  such  as  a  cursive 
script,  you  may  want  characters  to 
connect  together,  so  you  can  use 
the  full  horizontal  space. 

You  can  press  the  CTRL-cursor 
keys  to  roll  the  character  within  the 
grid.  Pixels  that  are  pushed  off  the 
edge  of  the  grid  wrap  around  to  the 
opposite  side.  This  is  especially 
useful  for  those  ANTIC  3  charac- 
ters. If  you  press  SHIFT  with  the 
cursor  keys,  the  pixels  that  are  shift- 
ed off  the  edge  of  the  grid  are  lost. 
This  can  be  used  to  crop  a  character, 
or  quickly  erase  a  certain  column  or 
row.  Just  roll  the  character  until  the 
column  or  row  you  want  to  erase  is 
at  the  edge  of  the  grid,  then  shift  the 
character  to  push  away  the  pixels. 

Other  special^  commands: 
Press  I  to  invert  the  character,  re- 
versing all  the  pixels  within  the 
grid,  R  rotates  the  characters  90  de- 
grees (turns  the  pattern  on  its  side). 
Press  R  twice  to  turn  a  character 
upside-down.  M  gives  you  a  left-to- 
right  mirror  image  of  the  character, 
as  if  you  picked  up  the  character. 


V8     COMPUTEI     April  1986 


flipped  it  on  its  back,  and  put  it 
back  down. 

Press  C  to  copy  the  character 
you're  editing  to  a  new  position  in 
the  character  set.  The  current  char- 
acter replaces  the  character  you  se- 
lect with  the  joystick  or  keyboard. 
Be  careful  with  this,  since  you  can 
unintentionally  erase  a  cherished 
character.  After  the  copy,  the  char- 
acter you  copied  to  is  selected  for 
editing. 

Saving  And  Loading 

When  you're  ready  to  save  your 
character  set,  just  press  S,  then  type 
in  a  legal  Atari  filename  at  the 

prompt: 

Save  (Devicc:Filename> 

Include  the  D:  for  disk  or  C:  for 
cassette.  You  can't  save  to  the  E: 
(screen  editor)  or  S:  (screen)  de- 
vices, so  if  you  forget  the  drive 
specification  and  your  filename  be- 
gins with  E  or  S,  FontMaker  cancels 
the  save.  If  you  selected  the  save 
command  by  mistake  and  want  to 
cancel  it,  just  press  RETURN  when 
asked  for  the  filename. 

To  load  a  character  set  into 
FontMaker,  press  L  and  enter  the 
filename  you  used  to  save  the  char- 
acter set.  This  will  replace  the  char- 
acter set  in  memory,  so  be  sure  to 
save  the  one  you're  working  on  if 
you  want  to  keep  it.  Again,  if  you 
select  this  command  by  mistake, 
press  RETURN  at  the  prompt  to 
cancel  the  load. 

FontMaker  is  compatible  with 
character  sets  created  with  "Super- 
Font"  (originally  published  in  COM- 
PUTE!, January  1982,  and  also  found 
in  the  First  Book  of  Atari  Graphics). 
FontMaker  sets  are  also  compatible 
with  many  other  Atari  character 
editors.  We  found  that  a  FontMaker 
set  can  be  loaded  into  the  popular 
Instedit  editor  if  you  use  a  filename 
extension  of  .SET.  Character  sets 
created  with  the  Iridis  Font  edit  also 
work  with  FontMaker. 

If  FontMaker  can't  save  or  load 
a  character  set  due  to  a  bad  file- 
name or  problem  with  the  disk,  it 
displays  the  message  I/O  ERROR; 
PRESS  RETURN.  Press  RETURN 
and  try  the  save  again,  after  you've 
figured  out  what  went  wrong. 

When  you're  done  editing 
characters,  press  the  ESC  (escape) 
key  to  exit  FontMaker  to  DOS.  Be 
sure  you've  saved  the  character  set 


you're  working  on  if  you  want  to 
keep  it. 

Using  Fonts  With  BASIC 

The  Bytes  option  in  FontMaker  is 
primarily  for  programmers  who 
want  a  list  of  the  eight  numbers  that 
define  a  character,  handy  for 
changing  just  a  single  character  in  a 
program.  But  if  you  want  to  include 
an  entire  character  set  in  your  pro- 
gram, copying  down  these  numbers 
can  be  tedious.  Instead,  you  can  use 
the  two  BASIC  programs  below. 
Programs  1  and  2,  to  add  redefined 
character  sets  to  BASIC. 

Program  2,  "Fontloader,"  is  a 
subroutine  you  can  merge  with 
your  BASIC  program  to  load  the 
character  set  into  memory  from 
disk.  Just  change  the  filename  in 
line  1010  to  the  filename  of  your 
character  set.  The  program  loads 
the  character  set  at  the  memory  lo- 
cation CHSET,  which  is  defined  as 
eight  pages  back  from  the  top  of 
memory  (location  106).  Change 
this  if  you  want  to  put  your  charac- 
ter set  somewhere  else.  If  a 
GRAPHICS  command  resets  the 
character  set,  you  can  use  POKE 
756,CHSET/256  to  re-point  the 
character  set  vector  to  your  RAM 
character  set.  Use  POKE  756,224  to 
display  the  ROM  character  set,  lo- 
cated at  memory  location  57344 
($E000). 

If  you're  using  a  Translator 
type  of  program  on  XL  and  XE  com- 
puters, you  can  change  CHSET 
(line  1030)  to  57344  to  load  the 
character  set  directly  into  the  RAM 
space  corresponding  to  the  position 
of  the  ROM  character  set.  This 
keeps  the  character  set  in  memory 
until  you  turn  off  the  machine. 

Use  Program  3,  "Character  Set 
Datamaker,"  if  you'd  rather  store 
your  character  set  as  part  of  your 
program  in  DATA  statements.  The 
Datamaker  actually  creates  another 
program  that  you  can  merge  with 
your  own  program.  It  creates 
DATA  statements  for  only  those 
characters  that  have  been  changed 
from  the  ROM  image.  Datamaker 
asks  for  the  filename  of  your  char- 
acter set  and  a  filename  you'd  like 
to  use  for  the  program  it  creates. 

After  using  Datamaker,  type 
NEW  and  use  ENTER  to  load  the 
program  created  by  Datamaker.  As 
with  Program  2,  you  can  change 


CHSET  in  the  program  created  by 
Datamaker  if  you  want  to  deter- 
mine yourself  where  the  character 
set  should  go  in  memory.  The  pro- 
gram created  by  Datamaker  copies 
the  ROM  set  down  to  RAM  (at 
CHSET),  POKES  in  the  new  charac- 
ters, and  switches  the  character 
pointer  at  756  to  the  new  set. 
Again,  you  can  use  POKE  756, 
CHSET/256  to  reenable  the  set  if 
your  program  somehow  resets  this 
pointer. 

Next  month  we'll  provide  a 
program  that  lets  you  install  an 
ANTIC  3  character  set  into  your 
copy  of  SpeedScript,  along  with  tips 
for  creating  readable  characters  and 
for  using  special  characters  for 
printer  effects. 


Program  1:  FontlMaker 

Please  refer  to  the  "WLX"  article  in  this  issue 
before  entering  the  following  listing. 


1  1  7 

070 

104 
027 
079 
04B 
1B3 
238 
134 
042 
162 
024 
203 
101 
222 
1  )  7 
251 
246 
I'Jl 
2S7 
0<?e 
17B 
192 
120 
25  1 
015 
070 
00S 
174 
180 
186 
192 
200 
1  17 
204 
208 
16<? 
132 
037 
220 
235 
003 
04  1 
126 
13"? 
175 
126 
241 
129 
222 
243 
204 
210 
226 
1  16 
007 
178 
144 
077 
051 


122Sa 

169 

125 

032 

,  096 

,  054 

032, 

12294 

187 

053 

032 

,009 

,054 

032, 

12300 

062 

050 

032 

,  108 

050 

032, 

12306 

045 

048 

1  69 

001 

1  41 

194, 

12312 

048 

032 

242 

048 

032 

113, 

I231B 

048 

032 

017 

049 

076 

0S3, 

12324 

051 

169 

064 

160 

048 

032, 

12330 

130 

054 

096 

032 

037 

048, 

12334 

169 

012 

133 

082 

169 

137, 

12342 

160 

052 

032 

145 

054 

169, 

1234B 

002 

133 

082 

096 

070 

111, 

12354 

110 

116 

077 

097 

107 

101, 

12360 

114 

032 

09B 

121 

032 

067, 

12366 

104 

097 

1  14 

108 

101 

1  15, 

12372 

032 

066 

1  14 

097 

110 

1  10, 

1237B 

11  1 

110 

000 

173 

202 

048, 

123B4. 

20! 

003 

208 

010 

173 

194, 

12590 

048 

20  1 

096 

144 

003 

169, 

12396 

000 

096 

169 

001 

096 

032, 

12402 

093 

04B 

20B 

006 

032 

202, 

12408 

054 

032 

202 

054 

169 

12B, 

12414 

009 

024 

133 

203 

173 

198, 

12420 

048 

009 

002 

133 

204 

162, 

12426 

000 

160 

000 

189 

169 

04B, 

12432 

145 

203 

200 

152 

041 

003, 

I243B 

20S 

245 

232 

224 

00B 

208, 

12444 

240 

032 

093 

04B 

208 

006, 

12450 

032 

252 

054 

032 

252 

054, 

12456 

096 

000 

000 

000 

000 

000, 

12  4  6  2 

000 

000 

000 

000 

000 

000, 

1246B 

000 

000 

000 

000 

000 

000, 

12474 

000 

000 

000 

000 

000 

000, 

12480 

000 

000 

000 

000 

000 

000, 

12486 

000 

000 

000 

000 

002 

000, 

12492 

000 

000 

000 

000 

169 

000, 

12498 

133 

204 

173 

194 

04B 

010, 

12504 

03B 

204 

010 

038 

204 

010, 

12S10 

03B 

204 

024 

133 

207 

109, 

12SE6 

195 

04B 

133 

203 

165 

204, 

12322 

133 

208 

109 

196 

048 

133, 

1252B 

204 

096 

032 

208 

048 

160, 

12S34 

00  7 

177 

203 

153 

169 

048, 

12S40 

153 

177 

048 

136 

016 

245, 

12546 

096 

032 

208 

048 

160 

007, 

12552 

185 

169 

04B 

145 

203 

136, 

1255B 

016 

248 

096 

163 

0B8 

024, 

12364 

103 

22B 

133 

203 

165 

089, 

125  70 

105 

00] 

133 

204 

169 

000, 

12S76 

14  1 

173 

048 

162 

004 

173, 

12382 

202 

048 

201 

006 

144 

002, 

12588 

162 

002 

160 

000 

173 

193, 

12594 

048 

205 

194 

048 

208 

002, 

12600 

009 

128 

145 

,203 

238 

193. 

12606 

048 

200 

192 

032 

208 

236, 

12612 

024 

165 

203 

105 

040 

133, 

12618 

203 

165 

204 

105 

000 

1  33, 

12624 

204 

202 

20  8 

2IB 

173 

202, 

12630 

04B 

201 

005 

,  176 

,014 

160, 

12636 

000 

185 

119 

,049 

,201 

010, 

12642 

240 

007 

145 

,203 

,200 

20B, 

1264B 

244 

160 

000 

,200 

,  173 

194, 

April  1986     COMPUTE!      99 


I2i54: 

04B, 

143, 

203, 

200, 

192, 

070, 

200 

12660: 

144, 

245, 

096, 

032, 

104, 

101  , 

090 

I2abh: 

000, 

I  13, 

117, 

105, 

077, 

107, 

151 

12672: 

000, 

e9B, 

114, 

111. 

1  19, 

110, 

16B 

1267B: 

000, 

102, 

111, 

120, 

000, 

106, 

061 

12AS4! 

1  17 

109, 

112, 

101, 

100. 

000, 

167 

12670: 

1  1  1 

1  IB, 

101  , 

114, 

000. 

000, 

079 

12676: 

000 

000, 

000, 

000, 

000. 

000, 

132 

12702: 

000 

1  16, 

104 

101  , 

000, 

IBB 

075 

S270B: 

097 

122 

121 

000, 

100, 

111. 

203 

IZ711: 

103 

115 

014 

010, 

000, 

000 

156 

12728: 

000 

000 

000 

033, 

225, 

00  1 

1  77 

12726: 

000 

031 

223 

255, 

000, 

032 

21  1 

12732: 

224 

000 

090 

105, 

099, 

107 

035 

1273B: 

032 

097 

032 

077, 

104, 

097 

143 

12744: 

1  14 

097 

099 

116, 

101, 

1  14 

073 

12730: 

046 

046 

046 

000, 

169, 

190 

1  71 

12756: 

160 

049 

032 

130, 

0S4, 

032 

1  57 

12762: 

01  7 

049 

032 

242, 

049, 

032 

126 

12768: 

I  13 

040 

173 

132, 

002, 

240 

164 

12774: 

042 

173 

Z52 

002 

201  , 

255 

131 

12780: 

20B 

043 

174 

120 

002, 

187 

204 

127S6: 

174 

049 

240 

236 

032, 

1  12 

061 

12792- 

033 

142 

03! 

20B 

024, 

107 

047 

1279B 

194 

048 

04  1 

127 

174, 

202 

016 

12B04 

04B 

224 

006 

144 

002 

041 

213 

12a  10: 

063 

141 

174 

04B, 

076, 

217 

237 

12S16: 

049 

173 

132 

002, 

240, 

251 

095 

I2S22: 

076 

039 

030 

032 

029, 

058 

070 

1 2e2B: 

04! 

127 

201 

076 

174 

013 

170 

12B34 

201 

032 

176 

006 

024 

105 

066 

12S40 

064 

076 

047 

050 

056 

233 

054 

12346 

032 

1  41 

1  74 

048 

032 

017 

254 

12952 

047 

032 

242 

048 

032 

1  13 

056 

12358 

046 

076 

037 

048 

165. 

1  06 

026 

12664 

056 

233 

016 

133 

204 

14  1 

079 

12670 

196 

048 

1  67 

000 

133 

203 

051 

12376 

141 

195 

048 

141 

194 

04B 

075 

12882 

133 

205 

169 

224 

133 

206 

128 

12889 

160 

000 

177 

203 

1  45 

203 

,210 

12B74 

200 

208 

247 

230 

204 

230 

,  135 

12900 

206 

163 

206 

201 

229 

20B 

.  035 

12906 

239 

076 

167 

046 

14  1 

047 

,  076 

1  2912 

002 

167 

003 

1  41 

027 

20B 

,  132 

1  2?ia 

169 

001 

1  41 

1  1  1 

002 

1  73 

,  203 

12924 

:  196 

,  048 

,  056 

,233 

,004 

,141 

,  034 

12930 

:  198 

,048 

,  141 

,  007 

,212 

,  169 

.  137 

12936 

:000 

,  141 

,  197 

,  04B 

,  162 

,011 

,  193 

12942 

:  157 

,  255 

,  207 

,  202 

,203 

,  250 

,141 

1294B 

■173 

,  19B 

,  048 

,  133 

,204 

,  173 

,053 

12934 

•  197 

,  04B 

,  133 

,  203 

,  162 

,  004 

.  133 

12960 

160 

,  000 

,  152 

,  145 

,  203 

,200 

,  252 

12966 

208 

,251 

,230 

,204 

,  202 

.208 

,  189 

12972 

246 

,024 

,  169 

,  128 

,  133 

20  9 

,  057 

1297B 

169 

,  000 

,  133 

,203 

,  173 

199 

030 

12984 

04B 

,009 

,003 

133 

,204 

133 

,202 

12990 

210 

,  167 

,  170 

133 

,207 

160 

,215 

IZ996 

024 

,  16S 

,  207 

145 

.203 

073 

,245 

13002 

2SS 

,  14S 

209 

200 

152 

041 

,  190 

13008 

003 

208 

006 

165 

207 

073 

,  102 

13014 

255 

133 

207 

192 

056 

208 

,241 

13020 

232 

169 

056 

14! 

001 

208 

,003 

13026 

141 

,002 

,208 

,  141 

,  003 

20S 

,161 

13032 

169 

,003 

.  Ill 

,007 

,208 

141 

,  1  35 

1303B 

010 

,208 

,141 

,0!  1 

,  208 

169 

.217 

13044 

014 

,  141 

,  192 

,002 

,  169 

070 

.084 

130  =  0 

141 

,  193 

,002 

169 

,200 

141 

.  072 

130S6 

194 

.002 

,  169 

.038 

141 

173 

,  227 

13062 

002 

,096 

,  173 

,  200 

,  048 

14! 

.  154 

1306B 

000 

,208 

,  173 

,198 

048 

009 

.  I  36 

13074 

002 

,  133 

204 

.  160 

000 

152 

.  137 

13080 

170 

,  133 

203 

.  145 

203 

200 

.034 

13086 

0!6 

,2S1 

172 

,  199 

04B 

189 

,  137 

13092 

047 

051 

145 

203 

200 

232 

,  146 

13098 

224 

004 

208 

245 

096 

240 

,035 

13104 

144 

144 

240 

000 

000 

000 

,064 

13110 

000 

000 

001 

001 

001 

000 

,057 

13116 

255 

255 

255 

000 

000 

000 

,057 

13122 

000 

000 

000 

000 

000 

000 

,  066 

1312B 

00  1 

235 

000 

000 

001 

235 

,072 

13134 

000 

000 

001 

255 

000 

169 

,247 

13140 

036 

!4l 

200 

048 

169 

024 

210 

13146 

141 

177 

04B 

032 

00B 

051 

057 

13152 

174 

120 

002 

142 

201 

048 

,015 

13159 

224 

015 

240 

064 

169 

004 

,050 

13164 

133 

207 

!4I 

031 

208 

165 

.225 

13170 

020 

197 

020 

240 

252 

174 

.249 

13176I20I 

048 

187 

031 

031 

024 

,  172 

131825 109 

200 

048 

201 

036 

144 

,  1  16 

131BB;007 

201 

085 

176 

0  03 

141 

,233 

13194 

200 

048 

187 

067 

051 

024 

,205 

13200} 107 

177 

048 

20t 

024 

144 

,  101 

13206 

007 

201 

033 

176 

003 

141 

219 

132I2;177 

048 

032 

00B 

051 

198 

180 

13218 

207 

165 

207 

20B 

202 

032 

1S9 

13224 

112 

053 

173 

232 

002 

201 

,  193 

13230 

25S 

20B 

085 

173 

132 

002 

,005 

13236 

208 

■  170 

0S6 

,173 

199 

048 

,010 

13242 

233 

,024 

074 

.074 

,  !6B 

032 

,023 

1324B 

093 

,048 

20B 

,014 

,  192 

006 

,24  1 

13254 

176 

,005 

,  200 

,  200 

,076 

210 

,  04  1 

13260: 
13266: 
13272: 

13278: 
132B4: 
13290: 
13296: 
13302: 
13308: 
13314: 
13320: 
13326: 
13332: 
13338: 
13344: 
13350: 
13356: 
13362: 
1336B: 
13374: 
13380: 
13386: 
13392: 
13399; 
13404: 
13410: 
13416: 
13422: 
13428: 
13434: 
13440: 
13446: 
13452: 
13438: 
13464: 
13470: 
13476: 
13482: 
13488: 
13494: 
13500; 
13306: 
13512: 
13518: 
13524: 
13530: 
13536: 
13542: 
13S49! 
13S541 
13560: 
13566: 
13572: 
13578: 
135B4: 
13590! 
13576: 
13602: 
13608: 
13614: 
13620: 
13626: 
13632: 
13638: 
13644: 
13650: 
13656: 
13662: 
13668: 
13674: 
13690: 
13686: 
13692: 
1369S: 
13704: 
13710! 
13716: 
13722! 
13726: 
13734: 
13740: 
137461 
13752: 
13758: 
13764: 
13770! 
13776: 
13782: 
137BB: 
13794: 
13S00: 
13806: 
13812! 
13B1S: 
13824: 
13830: 
13836: 
13842! 
13B4BI 
13854: 
13860: 
13B66: 


051 

1S2 

036 

233 

006 

168 

102 

173 

200 

048 

036 

233 

056 

208 

074 

074 

170 

232 

036 

167 

223 

000 

106 

202 

208 

232 

089 

055 

169 

048 

133 

167 

049 

032 

077 

167 

054 

032 

016 

035 

173 

217 

201 

048 

201 

015 

208 

005 

130 

162 

200 

032 

1  14 

053 

076 

1  15 

093 

051 

169 

000 

141 

000 

174 

208 

076 

037 

048 

032 

029 

176 

058 

201 

097 

144 

007 

20  1 

204 

123 

176 

003 

056 

233 

032 

125 

174 

0S8 

052 

221 

038 

032 

123 

240 

006 

202 

208 

24B 

076 

238 

096 

051 

202 

138 

010 

170 

187 

169 

031 

072 

167 

092 

072 

151 

1B9 

086 

052 

072 

1B9 

085 

203 

052 

072 

169 

000 

141 

000 

22B 

208 

076 

026 

043 

061 

043 

023 

042 

02B 

029 

030 

031 

032 

234 

027 

080 

123 

095 

124 

092 

099 

094 

071 

073 

085 

070 

077 

032 

082 

083 

076 

067 

066 

.092 

034 

035 

099 

033 

106 

055 

.113 

037 

03S 

194 

054 

244 

034 

.060 

241 

055 

076 

053 

IBl 

051 

.121 

125 

033 

209 

049 

142 

033 

.  173 

,019 

054 

223 

054 

036 

033 

.048 

06B 

055 

135 

033 

156 

055 

.173 

,251 

055 

196 

055 

005 

056 

.028 

,  005 

036 

183 

056 

246 

056 

.  185 

142 

057 

218 

057 

155 

155 

.027 

,035 

02B 

027 

027 

027 

030 

.027 

,  052 

031 

032 

195 

212 

210 

.204 

,  006 

045 

027 

028 

027 

029 

.027 

,077 

030 

027 

031 

032 

21  1 

.200 

177 

201 

.198 

212 

043 

027 

.028 

,  107 

027 

029 

027 

030 

027 

,031 

,  085 

135 

211 

208 

173 

175 

,  197 

,  055 

032 

084 

111 

103 

103 

,  108 

■  21  1 

101 

032 

032 

032 

032 

175 

100 

204 

177 

173 

210 

032 

066 

072 

108 

097 

1  10 

107 

155 

,  197 

,  208 

032 

071 

1  14 

097 

i  12 

,  104 

,  224 

105 

099 

lis 

032 

,077 

>  1  1  > 

,  239 

100 

101 

032 

20B 

,032 

,080 

,  003 

105 

099 

107 

155 

,20! 

,  032 

,  133 

073 

110 

113 

10! 

.114 

,  115 

,093 

101 

,032 

,032 

,  032 

,  032 

,  032 

,  241 

032 

032 

213 

.  032 

.085 

,110 

,  234 

100 

,111 

155 

!7B 

032 

,  070 

.  146 

105 

,  120 

032 

032 

032 

,  032 

.  075 

032 

032 

207 

20B 

212 

,  201 

128 

207 

206 

045 

070 

032 

,070 

12a 

10S 

120 

032 

097 

10a 

108 

074 

155 

210 

032 

0B2 

1  11 

1  16 

216 

097 

116 

101 

032 

032 

032 

182 

032 

032 

032 

032 

032 

20S 

143 

032 

077 

105 

1  14 

1  14 

1  1  1 

0B1 

114 

155 

195 

032 

067 

HI 

208 

I  12 

121 

032 

032 

032 

032 

157 

032 

032 

032 

032 

032 

032 

230 

174 

032 

066 

121 

1  16 

101 

182 

lis 

133 

21! 

032 

083 

097 

251 

1  18 

101 

032 

102 

1  1  1 

1  10 

138 

1  16 

032 

032 

032 

032 

032 

102 

204 

032 

076 

111 

097 

100 

196 

133 

177 

211 

195 

032 

069 

185 

120 

105 

1  16 

032 

1  16 

1  1  1 

ISB 

032 

068 

0  79 

083 

000 

000 

1  12 

162 

090 

160 

000 

J36 

208 

100 

233 

202 

208 

250 

096 

024 

127 

165 

088 

105 

228 

133 

203 

022 

133 

209 

165 

089 

105 

001 

064 

133 

204 

133 

210 

162 

002 

212 

169 

000 

168 

143 

203 

200 

003 

208 

251 

230 

204 

202 

208 

171 

246 

076 

032 

123 

033 

238 

174 

202 

049 

173 

202 

048 

201 

010 

008 

144 

005 

169 

002 

141 

123 

20  2 

048 

032 

187 

033 

032 

214 

242 

048 

032 

113 

048 

032 

IB! 

017 

049 

096 

173 

048 

002 

037 

133 

203 

173 

049 

002 

133 

1  15 

204 

160 

003 

167 

174 

143 

047 

203 

160, 

016 

167 

134 

145 

005 

203 

200 

169, 

006 

145 

203 

110 

200 

173, 

202, 

048 

145 

203, 

161 

200 

192, 

022, 

208 

247 

201 

012 

006 

240, 

004, 

201, 

005 

176 

090 

017 

167, 

016, 

143, 

203 

173, 

187 

202, 

048, 

200, 

145 

203 

200, 

212 

145, 

203, 

200, 

145, 

203 

200, 

060 

169, 

065, 

145, 

203, 

163 

203, 

176 

200, 

145, 

203, 

165, 

204 

200, 

093 

145, 

203, 

096, 

169, 

064, 

141, 

036 

014, 

212, 

169, 

030, 

141 

000, 

066 

002, 

169, 

054, 

141, 

001 

002, 

131 

169, 

172, 

141, 

014, 

212, 

076, 

080 

072, 

138, 

072, 

173, 

01  1, 

212, 

196 

201  , 

032, 

176, 

01  1, 

167, 

000, 

1  13 

141  , 

010, 

212, 

141  , 

024, 

208, 

010 

138721 

076. 

087. 

054. 

141. 

010. 

212. 

1J6 

!3B7a: 

173. 

202, 

048, 

201  , 

004, 

1  44, 

038 

13a84: 

009. 

173, 

198, 

002, 

141, 

024, 

075 

13870: 

20B. 

076, 

081, 

034. 

162, 

005, 

140 

13B96: 

!B9, 

090, 

054, 

157, 

021, 

208, 

023 

13702: 

202, 

208, 

247, 

173, 

176, 

048, 

128 

13908: 

141  , 

009, 

212, 

104, 

170, 

104, 

036 

13914: 

064, 

076, 

002, 

010, 

234, 

008, 

248 

13920: 

140, 

203, 

048, 

162, 

000, 

142, 

023 

13926: 

072, 

003, 

142, 

073, 

003, 

160, 

043 

13732: 

011  , 

140, 

066, 

003, 

032, 

086, 

190 

13938: 

228, 

172, 

203, 

048, 

076, 

160, 

253 

13944: 

000, 

152 

145, 

088, 

200, 

192, 

129 

13930: 

040, 

20B 

249, 

076, 

072, 

152, 

175 

13956: 

072, 

169 

002, 

133 

0B5, 

032, 

1  13 

13762; 

1  17, 

054 

133, 

084, 

104, 

169, 

032 

13768: 

!04 

133 

203, 

132 

204, 

167, 

065 

13974: 

001 

141 

240, 

002 

160 

000 

182 

13980: 

177, 

203 

240, 

006, 

032, 

096, 

142 

13986: 

054, 

200 

208, 

246, 

096, 

032, 

230 

13772: 

003, 

049 

032, 

113 

048, 

096 

253 

13778: 

032 

202 

054 

162 

007 

032 

13! 

14004: 

093 

048 

208 

002 

162 

001 

192 

14010: 

169 

000 

157 

169 

048 

032 

249 

14016 

167 

054 

096 

032 

202 

034 

029 

14022: 

032 

167 

054 

096 

173 

169 

121 

14028! 

048 

072 

162 

000 

189 

170 

077 

14034 

048 

157 

169 

048 

232 

224 

06  4 

14040 

007 

20B 

243 

104 

14! 

176 

073 

14046 

048 

096 

032 

232 

054 

162 

098 

14052 

000 

032 

073 

048 

208 

002 

099 

14038 

162 

002 

167 

000 

157 

167 

125 

14064 

048 

032 

167 

054 

096 

032 

ir  7 

14070 

252 

054 

032 

167 

054 

096 

13J 

14076 

173 

176 

049 

072 

162 

007 

122 

14082 

189 

168 

,048 

157 

167 

048 

013 

140SB 

202 

20B 

.247 

104 

141 

169 

055 

14094 

048 

096 

169 

020 

141 

000 

232 

14100 

210 

162 

.  175 

142 

001 

2)0 

132 

14106 

160 

128 

.  136 

208 

253 

202 

0B9 

14112 

224 

,  139 

,208 

243 

096 

162 

100 

141  IB 

007 

,  030 

,  169 

048 

202 

208 

,  190 

14124 

250 

,  032 

,  !67 

054 

096 

162 

,037 

14130 

007 

,  094 

,  169 

048 

,  202 

,203 

,010 

14  136 

250 

,  032 

,  167 

054 

,096 

,  162 

,  049 

14  142 

.  007 

,  1B9 

,  167 

,048 

,010 

,062 

,  035 

14148 

;  169 

,048 

,  202 

,016 

,246 

,  032 

,013 

I4IS4 

:  167 

,054 

,  096 

,  162 

,  007 

,  1B9 

,237 

14160 

:  169 

,048 

,074 

,  126 

,  169 

,  04B 

,  202 

14166 

:  202 

.  016 

,246 

,  032 

,  167 

,  054 

,  035 

14172 

T076 

,  104 

,  104 

,  162 

,014 

,  076 

,  136 

14178 

:079 

,051 

,  104 

,  104 

,  162 

,013 

.117 

14184 

:  076 

,  097 

,  051 

,  104 

,  104 

,  162 

.  IBB 

14190 

:0!  1 

,  076 

,  097 

,  031 

,  104 

.  104 

,043 

14196 

162 

,  007 

,076 

079 

05! 

096 

075 

14202 

167 

,  064 

,141 

014 

212 

167 

123 

14208 

000 

.141 

,029 

208 

162 

003 

159 

14214 

157 

.  000 

,208 

202 

016 

250 

179 

14220 

108 

.010 

,  000 

169 

000 

162 

077 

14226 

007 

157 

,167 

048 

202 

016 

233 

14232 

230 

032 

,  167 

054 

096 

162 

145 

1423B 

007 

189 

,  169 

048 

073 

255 

I  3! 

14244 

157 

169 

049 

202 

016 

245 

233 

14230 

032 

167 

.054 

096 

162 

007 

176 

14256 

187 

169 

048 

072 

189 

177 

252 

14262 

048 

157 

167 

048 

104 

157 

097 

14268 

177 

048 

202 

016 

237 

032 

134 

14274 

167 

054 

096 

169 

00B 

141 

061 

142B0 

031 

208 

173 

031 

208 

041 

124 

14286 

007 

201 

003 

208 

018 

032 

163 

14272 

062 

030 

169 

001 

141 

194 

061 

14278 

048 

032 

242 

048 

032 

017 

125 

14304 

049 

032 

1  13 

04B 

096 

032 

0B2 

14310 

208 

048 

163 

207 

133 

203 

170 

14316 

165 

20B 

024 

105 

224 

133 

07  1 

14322 

204 

162 

000 

160 

000 

177 

177 

14328 

203 

137 

169 

048 

200 

232 

233 

14334 

224 

008 

208 

245 

032 

167 

1  14 

14340: 

054 

096 

162 

007 

160 

008 

235 

14346: 

169 

000 

074 

169 

048 

042 

020 

14332: 

136 

208 

249 

157 

169 

049 

215 

1435B: 

202 

016 

239, 

032 

167 

054 

220 

14364: 

096 

160 

000, 

162 

007, 

167, 

1  10 

14370: 

000, 

030 

167, 

048, 

042, 

202, 

013 

14376! 

016, 

249 

153, 

185, 

04B, 

200, 

123 

14382: 

192, 

008 

20B, 

237, 

162, 

007, 

092 

14388: 

187, 

185 

048, 

157, 

169, 

048, 

080 

14394: 

202, 

016. 

247, 

032, 

167, 

034, 

008 

14400: 

096, 

160 

000, 

140, 

240, 

002, 

190 

14406: 

169, 

032 

032, 

096, 

054, 

169, 

1  10 

14412: 

126, 

032. 

096, 

034, 

140, 

204, 

216 

14418: 

048, 

032, 

027, 

05B, 

172, 

204, 

!  13 

14424: 

049, 

201, 

155, 

240, 

047, 

201  , 

212 

14430; 

126, 

240, 

032, 

041, 

127, 

201, 

093 

14436: 

032, 

144, 

233, 

201, 

097, 

144, 

183 

14442: 

007, 

201  , 

123, 

176, 

003, 

036, 

160 

14448: 

233, 

032, 

166, 

085, 

224, 

039, 

123 

14454: 

240, 

216, 

153, 

128, 

005, 

032, 

124 

14460! 

076, 

054, 

200, 

209, 

207, 

192, 

057 

14466: 

000, 

240, 

203, 

032, 

076, 

034, 

243 

14472; 

136, 

076, 

080, 

056, 

162, 

001  , 

133 

100     eOMPUTB     AprtI  1986 


144B4: 
14470: 
14494: 
14502: 
14308: 
14514: 
14520: 
14526: 
14S3Z: 
1453S: 
14544: 
14330! 
1455i: 
14S6Z: 
145^8: 
14574; 
14580: 
14SB&: 
14592: 
14398: 
14A04: 
14610: 
14616: 
L4622: 
1462B: 
14634: 
14640: 
14646: 
14652: 
1463B: 
14664: 
14670: 
14676: 
14682: 
146BB: 
14694: 
!470B: 
14706; 
14712: 
14718: 
14724: 
14730: 
14736: 
14742: 
1474B: 
14754: 
14760: 
14766: 
S4772: 
24778: 
14784: 
1 4790: 
1  4796: 
14S02: 
14808: 
14814: 
14B20: 
1482/b: 
14B32: 
I4a38: 
14844: 
1 4850: 
14856: 
14862: 
14868: 
14874! 
148B0: 
14986: 


142 

240, 

002 

032, 

096 

054, 

169 

000 

153 

128 

005 

140, 

204 

048 

173 

128 

005 

096, 

083 

097 

1  IS 

101 

032 

040, 

06S 

101 

1  IS 

105 

099 

101, 

05B 

070 

105 

108 

101 

110. 

097, 

109, 

101 

041, 

062, 

000, 

169, 

160, 

160, 

056, 

032 

130, 

054, 

032, 

063 

056, 

240, 

024, 

201, 

069, 

240 

020, 

20  1 

083, 

240, 

016, 

032 

111, 

057 

169, 

008, 

141, 

205, 

04B, 

169, 

01  1  , 

141, 

206, 

048 

032, 

030, 

057, 

076, 

037, 

048 

076, 

111, 

097, 

100 

032, 

040 

068, 

101 

1  IB, 

103 

099, 

101 

038, 

070, 

105, 

108, 

101, 

110 

097, 

109, 

101  , 

041 

062, 

000 

169, 

223, 

160, 

056, 

032, 

130 

054, 

032, 

065, 

0S6, 

240, 

024 

201  , 

069, 

240, 

020, 

201, 

083, 

240, 

016 

032, 

111, 

057, 

169, 

004, 

141  , 

205, 

04B 

169, 

007, 

141, 

206, 

049, 

032, 

030, 

057 

076, 

037 

0  4S, 

169, 

128, 

157 

068, 

003 

169, 

005 

137, 

069 

003, 

1  73 

204, 

048 

157 

072 

003, 

169 

000, 

137 

073, 

003 

169 

003 

137, 

066 

003 

173 

205 

048 

137, 

074 

003 

169 

000 

157 

075, 

003 

032 

0B6 

228 

048 

050, 

173 

195 

04S 

157 

06S 

003, 

173 

196 

048 

137 

069 

003, 

169 

000 

157 

072 

003 

169, 

004 

157 

073 

003 

173 

206, 

04B 

137 

066 

003 

032 

086, 

228 

04S 

017 

032 

1  1  1 

057, 

048 

012 

096 

162 

016 

169, 

012 

157 

066 

003 

032 

0B6, 

22B 

096 

032 

111 

057 

169, 

136 

160 

037 

032 

130 

054, 

032 

029 

058 

096 

073 

047, 

079 

032 

069 

082 

082 

079, 

082 

03a 

253 

032 

080 

082, 

069 

083 

083 

032 

210 

197, 

212 

213 

210 

206 

000 

067, 

1  1  1 

S  12 

121 

032 

>16 

111, 

032 

!  19 

104 

105 

099 

104, 

03Z 

099 

104 

097 

I  14 

097, 

099 

1  16 

101 

1  14 

063 

000, 

162 

007 

189 

169 

048 

157, 

135 

048 

202 

016 

247 

169, 

161 

160 

057 

032 

214 

049, 

162 

007 

189 

185 

048 

157, 

169 

048, 

202 

016 

247 

032, 

167 

054, 

096 

032 

1  19 

054, 

162 

000 

134 

085 

142 

207, 

048 

189 

169 

048 

032 

250, 

057 

174 

207 

048 

232 

224, 

00B 

208 

239 

032 

029 

,  058, 

032 

,  037 

04B 

096 

133 

,212, 

169 

,  000 

1  33 

213 

032 

,  170, 

217 

,  032 

230 

216 

160 

,  000, 

177 

,243 

048 

006 

032 

,  096, 

034 

,  200 

208 

,  246 

04  1 

,  127, 

032 

,  096 

054 

,  169 

032 

,  032, 

096 

,  0S4 

096 

,173 

037 

,228, 

072 

,  173 

036 

,228 

,072 

,  162. 

000 

rar 

,  096 

n2 

,224 

Fo 

,002 

ntlo 

,225 

ad« 

,  002. 

it 

196 
231 
040 
1  19 
246 
212 
076 
1  23 
149 
242 
059 
022 
216 
153 
173 
002 
096 
1  31 
107 
06  2 
086 
187 
125 
04B 
212 
1  33 
235 
09B 
194 
026 
001 
204 
212 
142 
194 
232 
083 
099 
214 
045 
1B3 
21  1 
049 
219 
056 
040 
253 
219 
205 
161 
150 
035 
103 
184 
156 
226 
184 
196 
152 
046 
036 
201 
089 
098 
1  22 
179 
1  98 
007 
075 


For  instnjctions  on  entenng  this  listing,  please 
refer  to  "COMPUTE! 's  Guide  fo  Typing  In 
Programs"  in  this  issue  of  computei. 


n 

1000 

REM     FONTLOADER 

FH 

1010 

□PEN  #1,4,0, "DiSERIF 
.SET":REM  YOUR  FILEN 
AME     HERE 

HO 

1020 

X=16:REM     FILENUMI16 

no 

1025 

DIM  CIO*  (7)  :CIO*  =  "hh 
h":CIa»(4J='CHR«  (170) 
;CI0*C5)-"LV"!CI0»(7 
) -CHR* (228) 

00 

1030 

CHSETb (PEEKt 106) -a) * 
256;PDKE  756,CHSET/2 
56SREI1  ADDRESS  OF  CH 
ARACTER  SET.  TRY  57 
344  ON  XL'S  WITH  TRA 
NSLATOR 

[J 

1040 

ICC0M=B34: ICBADR=836 
i ICBLEN-B40 

NF 

1050 

POKE     1CBADR+X+1,CHSE 

T/25iiP0KE  ICBADR+X, 
0 

mi0h0     POKE  ICBLEN+X+1 , 4: PO 

KE  ICBLEN+X, 0 
P6  1070  POKE  ICCDM+X,  7:  A-USR 

( ADR (CIO«) , X) 
JD  1080  CLOSE  «1 
1(11090  RETURN  :  REM  REMOVE  T 

HIS  LINE  TO  USE  THIS 
AS  A  STAND-ALONE  PR 

OGRAM 

Program  3:  Character  Set 
Dotamaker 

For  instructions  on  entering  this  listing,  please 
refer  to  "COMPUTEI's  Guide  to  Typing  In 
Programs"  in  this  issue  of  COMPUTEf. 

P!  100     OPEN     #1  ,  12,  0,  "E:  ■' 

(H  102    GRAPHICS     1  +  li 

HI10S     DIM     F*  (  1  4)  ,  OFS  (  14)  ,  T* 

(12) , A (7) 
Dftll0  POSITION  3,0:?  «6;"cfi 

ar ac  t er  set  " 
HI  120  POSITION  5,2:?  #6;"ig:' 

FJ  130  ?  #6;"THIS  UTILITY  CR 

EATES" ; 
HI  140  ?  #6;"fl  SET  OF  DATA  S 

TATE-"; 
IB  150  ?  «6;"MENTS  FROM  A  5A 

VED" 
PC  160     ?     tti;  "CHARACTER     SET. 

IT" 
Ffl 170     ?     #6; "OPT IMIZES     BY     ON 

LY" 
(K   180     ?     «6;  "LISTING     CHARflCT 

ERS" 
OL  lf0     ?     #6;  "NOT     PRESENT     IN 

THE" 
IH  200     ?     #i;  "STANDARD     CHARAC 

TER" 
KE  210     ?     «i;  "SET,  " 
KD  220     ?     *Ai?     #6;  "PRESS     5IiS.?l 

ST" 
!F  230  IF  PEEK  (S3279)  <>3  THE 

N  230 
«:  240  GRAPHICS  1  +  16 
LB  250  ?  #6; 

ENTS 


00  260  ?  #6 

TO" 

IK  270  ?  #6 

FILE 
HP  280  7     #6 

RGE" 
Dl  290  ?  #6 

OUR" 
J8  300  ?  #6 

?  #6 


'THE  DATA  STATEM 
'WILL  BE  WRITTEN 
■DISK  AS  A  list 
'USE  enter  TO  ME 
'THE  DATA  WITH  Y 
'PROGRAM. " : ?  #6; 


!?    #6;  "(H^BIIIiaiHIMD 

mi" 

HB  305     POKE     82,0:POKE     87,0 
GE310     ?     CHR4  (2B)  ;  CHR«  (  1S6)  ; 

"tm"  ;:  INPUT     itl;T4:IF 

Tt=""     THEN     310 
HF31S     F«!»"D:  ":  F*  (3)  =T* 
PP  320     ?     CHR*  (  125?  ;  "rgTUd:«»H 

U^XUuCS     5PACE5>U»ild;r:i: 

d" : ?     : ? 
SK  330     ?     CHR«  (28)  ;  CHR*  (  156)  ; 

"tm";  :  INPUT    #1  ;  T*:  IF 

T«=""     THEN     330 
KH  332    OF»»"D:  ":  OF*  (3)  =T$ 
AH  335    ?    CHR»(125)  ;  "gmaiMMi 

d^EMHlECS     SPACES>t>IIIj 

f:M.-*f:liJ^:ii<;tt-i"  :  ?     :  ? 
K340     INPUT     SLINE 
BE  345     CLOSE     #1 
«H  350     GRAPHICS     2+16:P0SITIQ 

N    5,6:?     *6;"wDrking 

{3     N}":SETC0L0R     4,3,4 
HC  370    OPEN    #1,4,0,F* 
DD  380     TRAP     600:OPEN     #2,8,0, 


OF«:TRAP     40000 

BG  381 

?     #2; SLINE; "CH5ET= (PE 

eK(106) -S) *256: FOR     I- 

0     TO     1023:PDKE     CHSET+ 

I,PEEK(57344+I ) zNEXT 

Pll  382 

?     #2; SLINE+1 ; "RESTORE 

"; SLINE+5 

NF  383 

?     #2; SLINE+2; "READ     A: 

IF     A=-l     THEN     RETURN" 

CK  3B4 

?     «Z; SLINE+3; "FDR     J"0 

TO     7:READ     B:POKE     CHS 

ET+A«8+J, B:NEXT    J" 

BE  385 

?    #2; SLINE+4; "GOTO     "; 

SLINE+2 

0B3B7 

LINE=SLINE+4 

S[  390 

FOR     1=0     TO     127:F=0 

AK  4  00 

FDR     J=0    TO     7 

hi;  410 

GET     #1 , A: A t J}=A 

IL  420 

IF     A<>PEEK(57344+I*B+ 

J)      THEN     F=l 

CS  430 

NEXT     J 

CH  440 

IF        NOT     F     THEN     460 

IE  445 

LINE=LINE+1 

PP  450 

?     #2;LINE;  "     DATA     "  ;  :  ? 

#2; I; iFOR     J=0     TO     7 : ? 

#2; " , "; A(J) ; :NEXT     J: 

?     #2 

KG  460 

NEXT     I :?     #2;LINE+1 ; "D 

ATA     -1" 

CN  470 

POKE     B2,2:GRAPHICS     0: 

?     "All     finistied'        Use 

ENTER     ";DF* 

CB  460 

?     "to     merge     ttie    -file. 

HE  490  END 

a  600  POKE  82, 2:BRAPHICS  0: 
?  :?  "ERROR  TRYING  TO 
OPEN  ";OFS; " . " 
Ee610  END  ® 


COMPUTEI 
Subscriber  Services 

Please  help  us  serve  you  better.  If  you 
need  to  contact  us  for  any  of  the 
reasons  listed  below,  write  to  us  at: 

COMPUTEI  Magozlns 

P.O.Box  10954 

Des  Moines.  lA  50340 

or  call  the  Toll  Free  number  listed  below. 

Change  Of  Address.  Please  allow  us 
6-8  weeks  to  effect  the  change;  send 
your  current  mailing  label  along  with 
your  new  address. 

Renewal.  Should  you  wish  to  renew  your 
COMPUTEI  subscription  before  we 
remind  you  to,  send  your  current  mailing 
label  with  payment  or  charge  number 
or  call  the  Toll  Free  number  listed  below, 

F4ew  Subscription.  A  one  year  (12 
month)  US  subscription  to  COMPUTEI  Is 
$24.00  (2  yeors,  S45.00:  3  years,  S65,00. 
For  subscription  rates  outside  the  US, 
see  staff  page).  Send  us  your  name 
and  address  or  coll  the  Toll  Free  number 
listed  below. 

Delivery  Problems.  If  you  receive  dupli- 
cate Issues  of  COMPUTEI,  If  you  experi- 
ence late  delivery  or  if  you  have  prob- 
lems with  your  subscription,  please  coll 
the  Toll  Free  number  listed  below. 

COMPUTE! 
T -800-247-5470 

InlA  1-800-532-1272 


AprtWe*     COMPUTE]      101 


Hi-Res 

Graphics  Aid  Routines 


This  handy  utility  makes  it  easy  to 
perform  sophisticated  operations  on 
Apple  high-resolution  graphics 
screens:  inverting  screens,  copying 
screens,  superimposing  one  screen  on 
another,  and  more.  It  works  on  any 
Apple  //-series  computer  with  DOS 
3.3  or  ProDOS. 


Like  most  personal  computers,  Ap- 
ple Il-series  machines  can  display 
high-resolution  color  graphics. 
There  are  many  commercial  pro- 
grams that  let  you  draw,  save,  and 
reload  hi-res  screens.  But  few  of 
them  let  you  easily  perform  com- 
plex operations  such  as  inverting  an 
entire  hi-res  screen  or  superimpos- 
ing one  screen  on  another.  "Hi-Res 
Graphics  Aid"  fills  that  gap. 
Though  the  program  uses  machine 
language  for  speed,  you  don't  need 
to  knov/  ML  to  use  it. 

Type  in  and  save  the  program 
belou',  then  run  it.  The  screen 
prompts  are  self-explanatory.  Keep 
in  mind  that  this  is  not  a  general- 
purpose  drawing  or  design  pro- 
gram; it  performs  large-scale  tasks 
on  existing  graphics  screens.  Since 
the  Apple  can  store  two  hi-res 
screens  in  memory  at  a  time,  most 
operations  let  you  act  on  either 
screen  1  or  screen  2. 

When  you  run  Graphics  Aid,  it 
displays  a  main  menu  of  six  selec- 
tions. From  this  menu  you  can  dis- 
play a  screen,  edit  a  screen,  load  a 
screen,  save  a  screen,  display  a  disk 
catalog,  or  quit.  The  current  selec- 


Jon  Hylands 


tion  is  highlighted  in  inverse  video. 
To  choose  a  different  selection, 
press  the  up-arrow  or  down-arrow 
keys  (CTRL-K  or  CTRL-]  on  the 
Apple  in-)  and  then  press  RE- 
TURN. Here's  a  brief  description  of 
the  options; 

Display  screen.  Enter  1  to  display 
screen  1;  2  for  screen  2. 

Edit  screeji.  This  option  displays  a 
second  menu  with  the  following 
options: 

•  Display  screen.  Enter  1  or  2. 

•  Invert  screen.  Enter  1  or  2. 

•  Copy  screen.  Enter  1  to  copy 
screen  1  to  screen  2,  or  vice  versa. 

•  Superimpose  screen.  Enter  1  to 
superimpose  screen  1  on  screen  2, 
or  vice  versa.  Then  choose  the 
mode  by  pressing  a  number  key 
from  1-3.  Mode  1  is  OR  A  mode; 
every  pixel  that's  turned  on  in 
either  screen  remains  on.  Mode  2  is 
AND  mode;  only  pixels  that  are  on 
in  both  screens  remain  on.  In  Mode 
3  (XOR),  every  pixel  that's  turned 
on  in  both  screens  will  be  turned 
off,  and  vice  versa. 

•  Color  screen.  Choose  screen  1 
or  2,  then  enter  a  color  number 
from  0-7. 

•  Flip  high  bits.  Choose  screen  1 
or  2,  then  choose  the  mode  by 
pressing  a  number  key  from  1-3. 
Mode  1  sets  the  high  bits,  mode  2 
clears  them,  and  mode  3  inverts 
them  (on  bits  are  turned  off,  and 
vice  versa). 

•  Swap  screens.  Swap  the  con- 
tents of  screen  1  and  screen  2. 


•  Return  to  command  menu. 

Load  to  screen.  Choose  screen  1  or  2, 
then  select  drive  1  or  2  and  enter 
the  filename  of  the  graphics  file  you 
wish  to  load. 

Save  screen.  Choose  screen  1  or  2, 
then  select  drive  1  or  2  and  enter 
the  filename  you  wish  to  use  when 
saving  the  graphics  screen  to  disk. 

Catalog.  Displays  a  disk  catalog. 

Quit.  Exit  to  BASIC. 

Hi-Re$  Graphics  Aid 

For  instnjctions  on  entering  this  listing,  please 
refer  to  "COWPUTEl's  Guide  to  Typing  In 
Programs"  in  this  issue  of  Computei, 

B3  10  BA  =  32768:  FOR  I  =  BA  TO 
BA  +  212:  READ  fl:CK  =  CK  + 
A:  POKE  I, ft:  NEXT  :  REM  L 
OAD  HR.CODE 
CA  20  IF  CK  <  >  313V7  THEW  PRINT 
"ERROR  IN  DATA  STATEMENTS 
.":  STOP 
F*  30  DATA  76,  IB,  12B,76,33,  12B,7 

6,55 
fi«  40  DATA  12B, 76, B0, 128,76, 115, 

128,76 
El  50  DATA  151,128,166,255,173,8 

0, 1?2, 173 
E"  60  DATA  82,  192,  173,37,  192,  189 

,83, 192 
7D  70   DATA  96,166,255,189,195,12 

8, 133,251 
35  80  DATA  32,186,128,177,250,73 

,255, 145 
5r  90  DATA  250,32,177,128,208,24 

5,96, 166 
i8  100  DATA  255,189,195,128,133, 

251 , 189, 198 
F9  110  DATA  128,133,253,32,186,1 

28, 177,250 
SE  120  DATA  145,252,32,177,128,2 

08,247,96 
fD  130  DATA  166,255,189,195,128, 

133,251, 189 
n    140  DATA  198,128,133,253,166, 

254, 189,201 
«5  150  DATA  128,141,105,128,32,1 
86, 120, 177 


102      COMPUTEI      April!  986 


DflTfi  250,17,252,145,252,3 

2, 177, 12a 

DATA  208,245,96,166,255,1 

89, 195, 128 

DATA  133,251,166,254,189, 

205, 128, 141 

DATA  141,128,109,209,128, 

141, 142, 128 

DATA  32, 1B6, 12B, 177,250,9 

, 12s, 145 

DATA  250,32,177,128,208,2 

45,96, 169 

DATA  32,133,251,10,133,25 

3,32, 186 

DATA  128,177,250,72,177,2 

52, 145,250 

DATA  104,145,252,32,177,1 

28,208,241 

DATA  96,200,208,5,230,251 

,230,233 

DATA  202,96,160,0,132,250 

, 132,252 

DATA  162,32,96,0,32,64,0, 

DATA  32,0,17,49,81,0,9,41 
DATA  73,0,128,127,120 
TEXT  :  HOME  :  PRINT  :  PRI 
NT  CHR*  <4);"PR#0'-:  PRINT 
:  REM  INITIALIZATION 
2fl  310  D*  =  CHRt  (4):BE«  =  CHRt 
(7):E*  =  CHR«  (27):L»  =  " 
":D  =  1 

READ  L:  DIM  X (L> , Tl« (L, 13 


15 

160 

21 

170 

87 

180 

ED 

190 

Cfl 

200 

79 

210 

n 

220 

n 

230 

SB 

240 

OE 

250 

n 

260 

u 

270 

11 

280 

IS 

290 

ii 

300 

F*  320 

5?  330 

57  340 

El  350 


IE  360 


CC  370 


B!  380 
81  390 


Z\    400 

36  410 

?S  420 
«t  430 
::  440 

23  450 
t3  460 
:?  470 

-:  4S0 
tt    490 

."■=  5013 
6-  510 

1«  520 

62  530 

7E  540 
70  550 
ED  560 


) 

FOR  J  =  1  TO  Lt  READ  X(J> 

:  FOR  I  =  1  TO  X<J):  READ 

TI«(J, I) :  NEXT  :  NEXT 
DATA  2, 6, DISPLAY  SCREEN, S 
GREEN  EDITOR, LOAD  SCREEN, 
SAVE  SCREEN, CATALOG, QUIT 
DATA  8, DISPLAY  SCREEN, INV 
ERT  SCREEN, COPY  SCREEN, BU 
PERIMP05E  SCREEN, COLOR  SC 
REEN.FLIP  HI  BITS, SWAP  SC 
REENS, COMMAND  MENU 
READ  X:  BIM  ERS ( X ) :  FOR  I 

=  1  TO  X:  READ  ER« ( I) :  N 
EXT 

DATA  13,,,, WRITE  PRDTECTE 
D,,FILE  NOT  FOUND, VOLUME 
MISMATCH, l/D  ERROR, DISK  F 
ULL,FILE  LOCKED, SYNTAX  ER 
ROR,,FILE  TYPE  MISMATCH 
REM   COMMAND  MENU 
HOME  :  TEXT  :J  =  1 : M*  =  " 
HI. RES  COMMAND  MENU":  GOB 
UB  640 

IF  I  =  X(J)  THEN  VTAB  10 
+  X (J) :  END 

ON  1  GOSUB  890,840,1290,1 
360, 1430 
BDTO  390 

REM   GET  A  KEYSTROKE 
A  =  0:  GET  A*:  IF  A4  =  E* 

THEN  POP  :  RETURN 
A  =  VAL  (A*) :  RETURN 
REM   CENTER  MESSAGE 
VTAB  V:  HTAB  (  INT  ({40  - 

LEN  (M*) )  /  2>  +  1) :  PRI 
NT  M*:  RETURN 
REM   DRAW  A  LINE 
VTAB  V:  FOR  I  =  1  TO  4:  F 
RINT  Lt;:  NEXT  :  RETURN 
REM   GET  DRIVE 
PRINT  "DRIVE  :  ":D;  CHRi 
(8)  ; 

ODSUB  440:  IF  Al  =  CHR*  ( 
13)  THEN  A  =  1 
IF  A  <  1  DR  A  >  2  THEN  52 
0 

D  =  A:  RETURN 
REM    GET  PASE 
GOSUB  440:  IF  A  <  0  OR  A 


>  2  THEN  560 
U   570  P  =  A:  RETURN 
U   580  REM   ASK  'ARE  YOU  SURE  ? 

Hi  590  PRINT  "ARE  YOU  SURE  "^  Y"; 

CHR»  (S) ; 
i7  600  GET  A«:  IF  A»  =  "N"  OR  fi« 

=  E«  THEN  PRINT  ASj:  POP 

:  RETURN 
24  610  IF  A«  =  CHR4  (13)  OR  A*  = 

"Y"  THEN  RETURN 
14  620  GOTO  600 

21  630  REM   CUSTOM  MENU  ROUTINE 
Ft  640  V  =  2:  BDSUB  490 
F3  650  V  =  4:  GOSUB  470 
7i  660  V  =  6:  GOSUB  490 
21  670  PRINT  :  VTAB  9 


AS 

680 

FOR  I  =  1  TO  X(J):  HTAB  2 
:  PRINT  TIS(J,I) :  NEXT 

3A 

690 

1=1;  VTAB  24:  CALL  -  86 

8 

VTAB  I  +  8:  HTAB  2:  INVER 

E7 

700 

SE  :  PRINT  TI*(J,I):  NORM 

AL 

54 

710 

A  =  PEEK  (  -  16384) :  IF  A 
<  128  THEN  710 

C* 

720 

POKE  -  16368,0: A  =  A  -  12 
8 

CF 

730 

IF  A  =  21  DR  A  =  10  THEN 
770 

CE 

740 

IF  A  =  B  OR  A  =  11  THEN  8 
00 

A9 

750 

IF  A  -  13  THEN  RETURN 

fii  760  GOTO  710 

81  770  VTAB  I  +  8:  HTAB  2:  PRINT 

TI*(J,  I) 
C8  7B0  IF  I  +  1  >  X(J)  THEN  I  = 

1:  GOTO  700 
ID  790  1  =  1  +  1:  GOTO  700 
7C  800  VTAB  1  +  8:  HTAB  2:  PRINT 

TI«(J,I) 
BE  810  IF  I  =  1  THEN  I  =  X(J):  G 

DTO  700 
31  820  1  =  1-1:  GOTO  700 
99  830  REM   SCREEN  EDITOR 
8E  340  HOME  :  TEXT  :  J  =  2:  M*  =  " 

SCREEN  EDITOR":  GOSUB  640 
E£  850  IF  I  =  X(J)  THEN  RETURN 
S3  860  ON  I  GOSUB  890,930,970,10 

20, 1100, 1190, 1260 

27  870  GOTO  840 

i5  880  REM    DISPLAY  SCREEN 

3S  890  VTAB  23;  PRINT  :  PRINT  "D 

I SPLAY  SCREEN  :  " ; 
78  900  GOSUB  560:  IF  A  =  0  THEN 

RETURN 
91)  910  POKE  255,  P:  CALL  BA:  GOTO 

900 
60  920  REM    INVERT  SCREEN 
Si  930  VTAB  23:  PRINT  :  PRINT  "I 

NVERT  SCREEN  :  "; 
76  940  GOSUB  560:  IF  A  =  0  THEN 

RETURN 

28  950  POKE  255,  P:  CALL  BA  +  3: 

RETURN 
2»  960  REM    COPY  SCREEN 
M  970  VTAB  22:  PRINT  :  PRINT  "C 

OPY  SCREEN  ";:  GOSUB  560: 
IF  ft  =  0  THEN  RETURN 
73  980  POKE  255, P:  PRINT  P;  "  TO 

";3  -  P 
4B  990  GOSUB  590 
AC  10Q0    CALL  BA  +  6:  RETURM 
C5  1010  REM    SUPERIMPOSE  SCREEN 
14  1020  VTAB  21:  PRINT  :  PRINT  " 

SUPERIMPOSE  SCREEN  " ;  :  (3 

OSUB  560:  IF  A  =  0  THEN 

RETURN 
72  1030  POKE  235, P:  PRINT  P;  "  TO 

■■;3  -  P 
tC  1040  PRINT  "1  :  QRA   2  :  AND 

3  :  EQR    CHOOSE  :  "; 
4A  1050  BOSUB  440 


7F  1060  IF  A  <  1  DR  A  >  3  THEN  1 

050 
31  1070  PRINT  A:  POKE  254,  A:  GDS 

UB  590 
E*  1080  CALL  BA  +  9:  RETURN 
AS  1090  REM    COLOR  SCREEN 
E2  1100  VTAB  21:  PRINT  :  PRINT  " 

COLOR  SCREEN  :  ";:  GOSUB 
560:  IF  A  =  0  THEN  RETU 

RN 
rl  1110  PRINT  P:  PRINT  "COLDR  : 

! 
A(  1120  GET  A*:  IF  At  =  Et  THEN 

RETURN 

13   1130  IF  A*  =  "0"    THEN  C  =  0: 

SOTO  1150 
#8  1140  C  =  VAL  (At):  IF  C  <  1  0 

R  C  >  7  THEN  1120 
72  1150  PRINT  C:  BDSUB  590 
98  1160  POKE  230,32  *  P:  HCOLDR= 
C:  HPLQT  0,0:  CALL  6245 

4 
EF  1170  RETURN 
C9  1180  REM    FLIP  HI  BITS 
B7  1190  VTAB  21:  PRINT  :  PRINT  " 

FLIP  HI  BITS  ON  SCREEN  : 
"; :  GOSUB  560:  IF  A  =  0 
THEN  RETURN 
*i  1200  PRINT  P:  POKE  255,  P:  PRI 

NT  "1  :  SET   2  :  CLEAR 

3  :  FLIP   CHOOSE  :  "5 
3E  1210  GOSUB  440 
43  1220  IF  A  <  1  OR  A  >  3  THEN  1 

210 

34  1230  PRINT  A;:  POKE  254,  A:  GO 

SUB  590 
SC  1240  CALL  BA  +  12:  RETURN 
53  1250  REM    SWAP  SCREENS 
3A  1260  VTAB  23:  PRINT  :  BDSUB  3 

90 
98  1270  CALL  BA  +  15:  RETURN 
FS  1280  REM   LOAD  SCREEN 
AE  1290  VTAB  20:  PRINT  :  PRINT  " 

LOAD  TO  SCREEN  :  " ; :  GOS 

UB  560:  IF  A  =  0  THEN  RE 

TURN 
9C  1300  PRINT  P:  GOSUB  510:  IF  A 

=  0  THEN  RETURN 
15  1310  PRINT  D:  INPUT  "FILENAME 

:  ";F» 
C3  1320  IF  F«  =  ■■■•  THEN  RETURN 

35  1330  VTAB  1:  PRINT  :  PRINT  D$ 

; "BLQAD";F«; ",D";D;",A"; 

P  «  8192 
E7  1340  RETURN 
97  1350  REM   SAVE  SCREEN 
28  1360  VTAB  20;  PRINT  :  PRINT  " 

SAVE  SCREEN  :  " ; :  GOSUB 

560:  IF  A  =  0  THEN  RETUR 

N 
AB  1370  PRINT  P:  GOSUB  510:  IF  A 

=  0  THEN  RETURN 
31  1380  PRINT  D:  INPUT  "FILENAME 

:  ";Fi 
DF  1390  IF  F»  =  ""  THEN  RETURN 
11  1400  VTAB  1:  PRINT  :  PRINT  DS 

; "BSAVE";F»; " , D" ; D; " , A" ; 

P  *  8192;",LB192" 
0»  1410  RETURN 
F4  1420  REM   CATALOG  DISK 

36  1430  VTAB  23:  PRINT  :  GOSUB  5 

10:  IF  A  =  0  THEN  RETURN 
22  1440  HOME  :  Mt  =  "CATALOG  OF  D 
RIVE  "  +  STR*  CD) :V  =  1: 
GOSUB  470 
95  1450  V  =  2:  GOSUB  490 
Eft  1460  POKE  34,2:  PRINT  :  PRINT 

D*"CATALOG,D"D 
91  1470  V  =  2:M»  =  "  PRESS  A  KEY 

":  GOSUB  470 
3B  1480  VTAB  2:  HTAB  27:  GET  T*: 
POKE  34,0:  RETURN      © 


April  1986     COMPUTEI      103 


COMMODORE  64 

Key  Phantom 


By  expanding  the  64's  internal  key- 
board buffer,  you  can  use  the  dynamic 
keyboard  technique  for  very  powerful 
effects.  This  tttachine  language  utility 
does  all  the  hard  work  for  you,  even  if 
you  ktww  nothing  about  machine  lan- 
guage. A  disk  drive  is  required. 


If  you've  been  following  Jim  Butter- 
field's  recent  series  on  dynamic 
keyboard  programming  (COMPUTE!, 
October-December  1985),  you 
know  that  this  technique  is  a  pow- 
erful programming  tool.  By  making 
the  computer  "type  on  its  own  key- 
board," you  can  write  programs 
that  modify  themselves  as  they  run, 
enter  direct  mode  commands,  and 
do  many  other  things  that  ordinari- 
ly are  difficult  or  impossible  from 
within  a  program. 

The  dynamic  keyboard  tech- 
nique works  by  POKEing  the  de- 
sired character  codes  into  an  area  of 
memory  called  the  keyboard  buffer, 
which  normally  starts  at  location 
631.  This  is  where  the  computer 
receives  keystrokes,  so  POKEing 
character  codes  into  the  buffer 
makes  the  computer  think  those 
keys  have  been  pressed.  Next,  you 
POKE  the  number  of  characters  in 
the  buffer  into  the  keyboard  buffer 
counter  at  location  198.  When  the 
program  ends,  the  computer  types 
the  codes  in  the  buffer,  just  as  if  you 
pressed  the  same  keys  yourself. 

However,  the  dynamic  key- 
board technique  suffers  from  one 
major  limitation.  Since  the  key- 
board buffer  can't  hold  more  than 
ten  characters,  you're  limited  to 
fairly  short  commands.  If  your 
command  takes  more  than  ten 
characters  to  type  (including  a  car- 
riage return),  it  simply  won't  fit  into 
the  buffer. 


Melvin  Baker 

"Commodore  64  Key  Phan- 
tom" overcomes  this  limitation  by 
relocating  and  expanding  the  64's 
keyboard  buffer  in  a  free  memory 
area.  When  the  machine  language 
(ML)  portion  of  Key  Phantom  is 
active,  the  64  has  a  keyboard  buffer 
3,758  characters  in  length — enough 
to  permit  very  elaborate  command 
sequences. 

A  Phantom  Typist 

Before  we  get  into  the  details  of 
how  Key  Phantom  works,  let's  try  a 
short  demonstration.  Type  in  and 
save  the  program  listed  below. 
When  you  run  it,  the  program  auto- 
matically POKEs  the  ML  code  into 
memory  and  then  displays  a  three- 
option  menu  on  the  screen.  By 
pressing  a  number  key  from  1-3 
you  can  create  a  new  commands 
file,  execute  an  existing  commands 
file,  or  exit  the  program. 

To  get  started,  press  1  to  create 
a  new  commands  file.  This  file  will 
be  called  COMMANDS  on  the 
disk,  so  if  your  disk  already  con- 
tains a  sequential  file  of  that  name, 
you  should  exit  the  program  and 
copy  the  old  file  to  another  disk 
before  proceeding. 

Option  1  is  a  simple  text  editor 
which  lets  you  store  a  series  of 
character  codes  in  the  file  named 
COMMANDS.  Later  on,  the  Key 
Phantom  can  read  the  character 
codes  from  this  file  and  type  them 
with  the  dynamic  keyboard  tech- 
nique. When  you  choose  Option  1, 
the  screen  clears  and  displays  a 
message  indicating  which  line  of 
the  commands  file  is  being  edited. 
The  line  number  is  solely  for  your 
information — it  won't  become  part 
of  the  file.  Type  in  the  following 
lines  exactly  as  shown.  Where  you 
see  the  name  of  a  key  enclosed  in 
curly  braces  {  }  you  should  press 


the  key  indicated  inside  the  braces. 
For  example,  press  RETURN  when 
you  see  {RETURN}.  Press  the 
cursor-down   key   when   you    see 

{DOWN}. 

Key£01  Phantom£02  Denionstration£03 

iDOWN}  {RETURN} 
Watch  me  type  in  a  line£01{DOWN} 

(RETURN} 
that  changes  the  screen  colors...£02 

JDOWN}  {RETURN} 
KOloEOlrEOlj  =  lE02toE02200:E02poke 

£0253280,£02j  ;£02n£01  eEOl  x£01 1£03 

{RETURN} 

Use  the  DEL  key  to  erase  any 
mistakes  within  a  line.  When  all 
four  lines  have  been  entered,  press 
any  key  at  the  prompt  to  write  the 
commands  file  to  disk.  At  this 
point,  the  program  returns  you  to 
the  main  menu.  Press  the  2  key  to 
execute  the  commands  file.  After  a 
brief  pause  while  the  ML  code  is 
placed  in  memory,  the  program 
loads  the  commands  file. 

Now  the  Key  Phantom  begins 
typing  the  characters  from  your 
commands  file  directly  on  the 
screen.  Although  the  RE.A,DY 
prompt  and  blinking  cursor  appear 
on  the  screen,  you  are  not  in  BASIC 
ready  mode.  The  Key  Phantom  has 
control  of  the  computer  until  it 
reaches  the  end  of  the  commands 
file.  You  should  see  the  following 
display: 

Key  Phantom  Demonstration 
Watch  me  type  in  a  line 
that  changes  the  screen  colors... 
f  orj  =  1  to200:poke53280,  j:n  exl 

Note  the  time  delays  of  various 
durations  that  are  used  at  different 
points  in  the  printing  sequence. 
These  result  from  the  characters 
£01,  £02,  and  £03  that  you  typed 
when  creating  the  file.  The  £  char- 
acter tells  the  Phantom  to  pause  the 
printing  for  the  number  of  seconds 
specified  in  the  following  number. 


104     COMPUTEI     April  1986 


The  delay  number  must  be  ex- 
pressed in  hexadecimal  (base  16). 
Thus,  £01  pauses  the  printing  for 
one  second;  EOF  pauses  for  15  sec- 
onds, and  so  on.  By  including  de- 
lays in  the  character  sequence,  you 
can  print  information  at  any  speed 
you  like. 

Pseudo-Keys 

The  £  character  is  an  example  of  a 
Key  Phantom-  pseudo-key.  Instead 
of  printing  something  on  the 
screen,  a  pseudo-key  performs  a 
certain  action.  A  second  pseudo- 
key  is  the  back-arrow  key,  located 
at  the  upper-left  corner  of  the  key- 
board. When  you  include  this  char- 
acter in  a  command  sequence.  Key 
Phantom  waits  for  you  to  type  a 
line  from  the  keyboard.  The  input 
terminates  when  you  press  RE- 
TURN, just  like  INPUT  in  a  BASIC 
program. 

Since  Key  Phantom  essentially 
types  every  character  from  the  com- 
mand file,  you  must  keep  in  mind 
what  would  happen  if  you  were 
typing  those  characters  yourself. 
For  instance,  it's  necessary  to  print 
a  cursor  down  character  before 
printing  RETURN  at  the  ends  of  the 
first  three  example  lines.  Otherwise 
you'd  get  a  SYNTAX  ERROR,  since 
those  lines  don't  contain  BASIC 
commands.  But  no  cursor  down  is 
used  at  the  end  of  the  last  line:  In 
this  case  you  want  to  press  RE- 
TURN at  the  end  of  the  line  to  make 
the  computer  perform  those  actions. 

Cursor  control  characters  can 
be  used  for  a  variety  of  different 
effects.  Just  as  in  BASIC,  you  can 
move  left,  right,  up,  or  down,  go  to 
the  home  position,  clear  the  screen, 
and  so  on.  The  editor  accepts  any 
keys  except  DEL,  CTRL,  RUN/ 
STOP,  and  RESTORE,  Since  con- 
trol characters  would  garble  the 
editor's  screen  display,  it  generally 
displays  a  reverse  video  <  or  > 
symbol  to  show  that  a  control  char- 
acter was  typed.  If  you  need  to  per- 
form an  action  not  available  from 
the  keyboard,  you  can  always  exe- 
cute a  short  PRINT  statement.  For 
instance,  PRINT  CHR$(14)CHR$  (8) 
locks  the  keyboard  into  lower- 
case/uppercase mode. 

Advanced  Applications 

Because  the  ML  portion  of  Key 
Phantom  is  driven  by  the  comput- 


er's hardware  interrupt  routine,  it 
can  operate  while  a  BASIC  program 
is  running.  This  means  you  can  use 
it  to  feed  input  directly  to  a  running 
BASIC  program. 

When  would  this  be  useful?  To 
take  a  simple  example,  let's  say  you 
use  a  certain  BASIC  program  fre- 
quently: It  could  be  a  checkbook 
program,  an  events  calendar,  or 
whatever.  The  program  may  begin 
by  asking  you  to  choose  from  sever- 
al different  options,  input  various 
items  of  information,  and  so  on.  By 
writing  an  appropriate  command 
file  for  Key  Phantom,  you  could 
make  the  computer  load  and  run 
the  BASIC  program,  select  the  op- 
tion or  options  you  want,  and  input 
as  many  items  of  information  as 
needed.  If  you  need  to  input  new 
information  at  any  point,  the  back 
arrow  pseudo-key  lets  you  do  so. 
And  when  automatic  control  is  no 
longer  needed,  the  command  file 
can  terminate,  leaving  you  in  the 
BASIC  program  as  usual. 

If  you're  the  type  who  likes  to 
have  several  programming  aids  ac- 
tive at  once,  why  not  write  a  Key 
Phantom  command  file  that  auto- 
matically loads  and  activates  all 
your  favorite  utilities  at  once? 
When  you  begin  using  Key  Phan- 
tom, you'll  probably  think  of  many 
more  uses  as  well. 

Of  course,  since  it  uses  memo- 
ry from  locations  49152-53247, 
this  program  is  not  compatible  with 
utilities  that  use  the  same  memory 
area.  And  you  must  be  careful  not 
to  activate  any  other  ML  routines 
that  disturb  the  64's  hardware  in- 
terrupt vector  at  locations  788-789 
($0314-$0315).  You  should  also 
look  out  for  BASIC  programs  that 
begin  by  clearing  the  computer's 
keyboard  buffer — to  avoid  losing 
information  from  the  command 
file,  you  should  pause  Key  Phan- 
tom for  a  few  seconds  (with  the  £ 
pseudo-key)  when  the  program 
begins. 

When  feeding  input  to  a  pro- 
gram, you  must  keep  in  mind  what 
sort  of  input  the  program  expects.  If 
the  program  accepts  data  with  IN- 
PUT, you  should  terminate  the  cor- 
responding data  item  with  a 
carriage  return.  On  the  other  hand, 
if  the  program  accepts  data  with 
GET,  you  should  not  end  the  data 
with  a  carriage  return.  GET  usually 


takes  a  single  keypress,  not  a  key- 
press plus  a  carriage  return. 

Occasionally  you  may  find  a 
program  that  needs  to  use  Key 
Phantom  pseudo-keys  for  its  own 
purposes.  Then  you'll  have  to 
change  the  pseudo-keys  to  some 
other  character.  This  can  be  done 
by  substituting  different  character 
codes  in  lines  570  and  590,  The 
REMs  in  the  program  indicate 
which  value  belongs  to  which 
pseudo-key. 

Commodore  64  Key 
Phantom 

For  Instructions  on  entering  this  llsling.  pleas© 
refer  to  "COMPUTEi's  Guide  to  Typing  In 
Programs"  published  in  this  issue  of  COmputei. 


JH  100 
HJ  110 


GQ  120 


CH  130 

AP  140 

FB  150 

XG  160 

FK  170 

HR  180 

BK  190 

QG  200 

JQ  210 


RQ  220 


ZZ=53368 

CL0SE15:PRINT" (CLR) 

{2  DOWN] KEY  PHANTOM 

(2  DOWN)" 

PRINT  "1]    EDITORlDOWNl": 

PRINT"2]    EXECUTE (DOWN  J" 

:PRINT"3]    EXITlDOWNi" 

GDSUBa20sK=VAL(Q?) !lFK< 

1ORK>3THEN130 

ON  K  GOTO150,460,510 

OPEN15,8,15, "I" 

GOSUa520:PRINT:PRINTDS 

OPENS, a, 5, "0:COMMANDS,S 

,W"tGOSUB520 

PRINTiPRINTD$:IF  ai<20T 

HEN260 

CLOSES 

IF   A1O63THEN110 

PRINT" f DOWN )1]    SCRATCH 

lD0WNl":PRINT"2]    APPEND 

tDOWNJ";PRINT"3]    MENU 

{DOWN}" 

GOSUB820:K=VAL(Q5) :IFK< 

1ORK>3THEN220 

ON  K  GOTO240,2S0,110 

PRINT* 15, "S!COMMANDS":G 

OTO160 

OPENS, 8, 5, "0!COMMANDS,S 

,A"iGOSUB520  sGOTOie0 

FOR  LN=lTO4000!NEXTtLN= 

1 

PRIHT"{CLRJ!RIGHT}KEY    p 

HANTOM    "D?" (down! "sPRlN 

T"LISE   -    "LN"[DOWNj":L? 


HC  280  PRINT" [RVS}  (OFF) (LEFT} 


GOSUBS20:K=ASC(Q?) :IF   K 

<  32THENQ5=" i RVS  J  < 1  OFF J " 

IF    K>127AND    K<1607HENQ5 

="(RVS}>lOFFj" 

IF    K=34THENQ$»"{RVS3 ' 

(OFF J" 

IF   K=20THENPRINT" 

[2    LEFT]"? tK=LEN(L5)-l : 

L5=LEFT$(L5,K-(K<0/-2) ) 

:GOTO2B0 

PRINTQ5; 

IF  K<>13THENL5=L$+CHR5( 

K) :GOTO2a0 

PRINT  :  PRI  NT  "( DOWN  }[  RET  ] 

FOR   NEXT   LINEIDOWN}" 
PRINT"[DEL]    TO    REDO    LIN 
BiDOWNj" 

PRINT  "ANY  OTHER  TO  EXIT 
{DOWN}" 
GOSUB820 


CF 

230 

XD 

240 

MK 

250 

QF 

260 

PG 

270 

MP 

290 

XQ 

300 

HA 

310 

CA 

320 

RK 

330 

AQ 

340 

DF 

350 

JC 

360 

SR 

370 

GP 

380 

April  1986     COMPUTEI      105 


DH    390 

IPQ?=CHR? ( 13 )THENLN=LH+ 

GE 

570 

DATA    92iREM    OOMKAHD    ONE 

176,74,145,253 

ltPRINT#5,L?!GOSUB520iG 

{£) 

CM 

710    DATA    230,253,208,2,230, 

OTO270 

AP 

580 

DATA    240,75,201 

254,165,254,201,207,208 

FQ    400 

IFQS"=CHRS(20)THEN270 

PR 

590 

DATA    95;REM    COMMAND    TWO 

,6,165,253,201,255,240 

DQ    410 

PRINT:  PRINT  "ARE    YOU    SUR 

(*) 

FM 

720    DATA    54,32,183,255,41,6 

E    CY/N]7     "; 

GA 

600 

DATA   240,27,141,119,2,2 

4,240,224,169,0,145,2  53 

6B    420 

GOSUB820 I IFQ$  t > "Y"ANDQ$ 

33,198,0,32,158,192,76 

,169,5,32,195,255 

<>"N"THEN420 

DM 

610 

DATA   226,252,173,197,0, 

BM 

730    DATA    32,51,193,169,15,3 

JS    430 

PRINTQ5jIFQ$="N"THEN350 

201,1,208,246,169,0,141 

2,195,255,176,28,32,204 

OF   440 

PR1NT*5,L?!GOSUB520«PRI 

,135,192,76,43,192 

,255,120,173,20,3 

NTiPRINTD$ 

RP 

620 

DATA    233,185,192,76,45, 

OF 

740    DATA    141,49,192,173,21, 

HE   450 

CiaSES  :GOSUB520  tPRINT  <  P 
RIKTD?  sPRINTjCLOSEIS  rGO 

192,120,173,49,192,141, 
20,3,173,50,192,141 

3,141,50,192,169,3,141, 
20,3,169,192,141 

TO110 

pr 

610 

DATA    21,3,88,76,48,192, 

BK 

750    DATA   21,3,88,96,169,5,3 

XR  460 

RESTORE»CS=0!READ    LB.HB 
1  A1=HB*256+LB:A2=-A1  tPRl 

2  38,184,192,17  3,184,192 
,201,60,208,8,169 

2,195,2  55,169,15,32,195 
,255,32,138,255 

NT "LOADING    AT'Al; 

EA 

640 

DATA    0,141,184,192,206, 

SS 

760    DATA    76,131,164,176,233 

MC    470 

READKiPRINT"     >{LEPr}";s 
IFK<0THEN490 

183,192,76,48,192,32,13 
2,192,10,10,10,10 

,162,15,32,198,255,176, 
231,32,207,255,176,226 

QH    480 

CS=CS+K!P0KEA2,KtA2=A2+ 
1:GOTO470 

PB 

650 

DATA    141,183,192,32,132 
,192,13,183,192,141,183 

£3U 

770    DATA    72,32,207,255,176, 
220,201,13,208,247,104, 

KC   490 

IF    CSOZZ    THENPRINT" 

,192,76,45,192,32,158 

201,48,208,211,96,169 

iRVSl    CHECKSUM    ERROR 

BE 

660 

DATA    192,32,154,192,162 

GR 

730    DATA    15,162,8,160,15,32 

{OFFj";CSiGOTOI10 

,0,221,186,192,240,7,23 

,186,255,169,0,32,189,2 

JG    500 

SYS    Al 

2,224,16,208,246,162 

55,32,192,255,32 

FH    510 

PRINT  "(CLR)"  SEND 

CR 

670 

DATA    0,138,96,173,81,19 

HH 

790    DATA    51,193,169,5,162,3 

PQ    520 

INPUT#15,A1,DS,A2,A3 

3,96,238,155,192,208,5, 

,160,5,32,136,255,169,1 

EJ    530 

IF   AK20THENRETUFN 

238,156,192,240,160 

0,162,202,160,192 

CB    540 

D5="{RVS}     "+D?+"     iOFPj" 
(RETURN 

BC 

680 

DATA    173,156,192,201,20 
7,208,7,173,155,192,201 

JK 

300    DATA    32,189,255,32,192, 
255,32,51,193,162,5,32, 

RH    550 

DATA  0,192,76,81,193,17 

,255,240,146,96,0,0 

198,255,176,159,169 

3,183,192,201,0,208,79, 

MF 

690 

DATA    0,48,49,50,51,52,5 

Ea 

810    DATA   81,133,253,169,193 

173,135,192,201,0 

3,54,55,56,57,65,66,67, 

,133,254,160,0,76,212,1 

OF    560 

DATA    208,34,173,198,0,2 

68,69,70 

92,255,-1 

01,0,208,24,32,154,192, 

FFC 

7«0 

DATA    48,58,67,79,77,77, 

KG 

820    GETQS!lPQ$=""THEN820 

201,0,240,41,201 

65,78,68,83,32,207,255, 

GP 

330    RETURN                                              @ 

PRINTERS 


1X90 

HS80Leilpi|ei 
JX80 
FXI85     , 
Lai50O(PARl 

FXSb 

LX80 


1234  95 
3l8<li 
.  ■148.95 
,  454  95 
,  949.95 
.331.95 
J10  95 


STAR  MJCRONICS 


SG10 

SG10C 

SG15 

S010 

SDlS 

SR10 

SRI5 

Power  type 

MSPIO 
MSPI5 
MSP20 
WSP25 

109! 
1092.    . 
1093 
3151 

3131 

Okimate  to 

Okimale  20 

1S2 

192 

193 

84 

B08/NL0 
1080  \LQ 
1380 
13805 

eooo 

BlOO 
6300 


CITIZEN 


PANASONIC 


OKIOATA 


LEGEND 


JUKI 


M51 

1340 


.2000 


TOSHIBA 


DAISYWRITER 


S210  95 
234  95 
368  35 
321  95 
440  95 
. .  468  95 
581  95 
299  9b 

S274  95 
438  95 

436  95 
548  95 

S231  95 
368  95 
424  95 
424  95 
259  05 

Si  70  95 

209  95 
219  95 
3''9  95 
514  95 
640  95 

SI  49  95 
205  9^ 
259  95 
29J  15 

S189  95 

379  95 

769  95 

SI  239  95 
599 


599  95 
739  aij 


N.EX. 

2030 $699  95 

2050 699.95 

3530 1309  95 

3550 1389  95 


ANCHOR 

Voikiiio()«mi2  SI  79  95 

Signalman  Expiess  299  9b 

Li9Mnin9  2400.  399  95 

Wesirmge  59  95 

DIGITAL  DEVICES 

300  Baud  lAtani   598  95 

HAYES 

300 St37  95 

300n200   386  9b 

1200  B  w/soflwafe 378  95 

1200B  349  95 

NOVATION 

SmanCal  Plus  (1200)  S309  95 

Professional  2400  629  95 

SUPRA 

r,lPP10O0ElAIfl-ri  554  95 

MPP1064IC-04I  54  95 

CAL-ABCO 

Smart  ream  1200  S199  95 

C.O.I. 

W^ley  Mo  (64)  S59  95, 


SUPRA 

MTPII50  £-15  95' 

DIGITAL  DEVICES 

U  Pflni/Pon J49.95 

UPijnl/16K  69  95 

U  Print.'G4K  79  95 

CARDCO 

G-Wiz I4S95 

AT-1  (Alaril  48  95 

TYMAC 

Epson $58  95 

PAR(CsnlrcinicsSrd.|.  54  95 


DISKETTES 


BONUS 

SS/DD 

OS/00 

NO  LABEL  (with 

SS/00 

DS/DD 

MAXELL 

MDI 

um 
MEMOREX 

SS/DD 

DS/DO 

FF30/20SS/DD 
FF50/20SS/DD 
FF50/20DS/DD 
kHIlttlinusCana 


5Vi  3V11 

S  9  50  - 

13  50  - 

Pen  &  Flip-n-lile) 

S1050  - 

1450  - 

SIS  95  32.95 

19.95  38.95 

S12.S0  29.95 

16  bO  34,95 

-  b9,9b 

36.95  - 

42  95  - 


to,2E      PRINCfTON       s.agg, 

HX-9 45995 

HX-SE 51995 

HX-12 469  95 

HX-12E  555  95 

SH-12 589  95 

SB-12E       649  95 

i™i(Griion|       NEC  S99  95 

1205  (Amber).  99  95 

1290(TTLGieeni       148  95 

12e5|TTLAmlwr) 148  95 

1460  .269  95 

1401(BGB}  .659  95 

ZVM  122/123-^'"^'^        $  74  95 
ZVM124(TTLAl^ber)  149  95 

ZVM131  (RGB) 279  95 

ZVM  135(KGB/Cotor)  45995 

MJ-tO  TEKNIKA     J, 79  95 

MJ-22  254  96 

300G  AMDEK      S1 16  95 

300A 126  95 

310A       ...144.95 

CUk)r300 17595 

Cctor500 339  95 

Color  600 39895 

Cmoiim 468  95 

Color  710  .538  95 

iColor  722  579  95i 


AST 

Six  Pack  Plus $239  95^ 

Advanlage  (AT) 399  95 

Graph  Pak 689.95 

Preview 299.95 

Mono  Graph  Plus 389.95 

5251/11 799.95 

5251/12 579,95 

EVEREX 

Color  Card J295  95 

Magic  Card 185.95 

HERCULES     , 

Color $169.95 

Graphics 289.95 

PARADISE 

five  Pack S159.9S 

Mono 149.95 

Modular  Graphics 279.95 

Mulli  Display 209  95 

TECMAR 

Graphics  Masler S459  95 

Caplain64     $189,95 


DISK  DRIVES 

^T,A1.n,        INDUS 

-  5198-95 

GT  (Commodore) 

218  95 

TANDON 

IM1C02 

S109  95 

TEAC 

55B 

SI  04  95 

WESTERN  REGION 
1-800-351-3455 


IrtCACall:  1-800-351-3422 


ORDER  TOLL  FREE  "f?^^^^^^ 


"Where  Prices  are  Bom,  Not  Raised." 

H/7E  HOUSE 


WESTERN 
REGION 

11327TraileCenler  Orive 
Sui1a33S 
RanctiuCordgvi.CA  95670 
.  Cuslomef  Service:  916-635-3455 


COMPUTER 


EASTERN^ 
REGION 

NOOfWW  on  C  OD  vfOt'T.     FfHiingni  onilpr«t>MC4snorant0n<(^in^th(  ftmnenui  U  5  a  P.O.  Bfll  4D25 

ATO  ind  fK:  tfOtii  JflC  Ji  DO  p«  fmrnfivS   fv  Proiirr  MM  kH  JIO  CO  pe'  PMM'M'   fiwt  ihwmg      WllllamspOft.  PA  17701 

w  PA  fwjmij  n  ltl>^m^  km  s%  v*niv  m (WWhfl or«jiKii ftyuh runt  ipfwRi  Pufnwf  Cusicmer  Service: 

Hours  iWcndiiiyllirLi  Fiiflav^  3 '"     6  P  "i  717-322-7700^ 


MASTER  CARD  4%  VISA  4% 


AMERICAN  EXPRESS  5% 


106     COMPtrm     April  1986 


Screen  Clock  For 


Have  you  ever  become  submerged  iti  a 
project  while  loorking  on  your  com- 
puter and  suddenly  discovered  it  is 
hours  past  your  bedtime?  Or  maybe 
you  need  to  keep  a  detailed  log  of  your 
worktime  on  the  computer  for  busi- 
ness or  tax  purposes.  If  so,  this  utility 
is  the  answer — it  constantly  displays 
all  this  information  and  more  on  your 
monitor  screen.  It  luorks  with  IBM  PC 
and  PCjr  computers  using  DOS  2.0  or 
higher. 


Large  mainframe  computers  gener- 
ally provide  a  sysline  on  the  termi- 
nal screen  which  tells  you  the 
current  date  and  time,  who  has 
logged  on  or  off,  and  whether 
you've  received  any  new  electronic 
mail.  Obviously,  not  all  of  these 
things  apply  to  single-user  personal 
computers,  but  some  of  the  features 
would  be  nice  to  have. 

"Screen  Clock"  is  a  short  ma- 
chine language  program  that  prints 
the  day  of  the  week,  date,  current 
time,  and  log-on  time  at  the  top  of 
the  screen.  This  information  ap- 
pears no  matter  what  else  your 
computer  is  doing.  You  can  be  run- 
ning a  word  processor,  copying 
files,  programming,  or  whatever — 
the  day,  date,  and  time  will  always 
be  visible. 

You  might  be  wondering  how 
it's  possible  to  keep  Screen  Clock 
active  while  running  another  pro- 
gram; an  IBM  PC  with  PC-DOS 
isn't  capable  of  multitasking. 
Screen  Clock  gets  around  this  re- 
striction by  not  using  any  PC-DOS 
function  calls,  relying  instead  on 
the  BIOS  (Basic  Input/Output  Sys- 
tem) to  handle  the  screen.  This  has 
several  fortunate  consequences: 

•  Sysline  updates  are  not  redi- 
rected to  a  file  if  you're  using  DOS 
file  redirection. 


More  Sugiyomo 

•  Sysline  updates  are  not  print- 
ed if  you're  echoing  output  to  the 
printer.  (But  the  sysline  is  printed  if 
you  press  PrtSc  for  a  screen  dump.) 

•  Screen  Clock  always  updates 
the  current  "active"  screen.  It 
doesn't  matter  if  you  switch  from 
the  monochrome  monitor  to  the 
color  monitor,  change  pages  in  the 
color  screens,  or  even  enter  a 
graphics  mode — the  date  and  time 
are  always  there. 

Winding  Up  Tlie  Clock 

Type  in  the  program  listing  below, 
save  a  copy  on  disk,  then  type 
RUN.  The  program  is  a  BASIC 
loader  that  creates  a  machine  lan- 
guage file  on  your  disk  with  the 
filename  CLOCK.COM.  To  start  the 
clock,  simply  type  CLOCK  (upper- 
or  lowercase  is  fine)  at  the  A>  DOS 
prompt,  A  sysline  similar  to  this 
should  appear  on  the  top  line  of 
your  screen: 

Wed  Jan  01, 1986  12;01A  (00:37) 

The  day  of  the  week,  date,  and 
current  time  are  self-explanatory. 
The  figure  in  parentheses  is  the 
elapsed  time  (in  hours  and  minutes) 
since  Screen  Clock  was  started  or 
reset.  This  "log-on"  time  runs  up  to 
23  hours  and  59  minutes,  then  rolls 
over  to  00:00. 

When  you  run  Screen  Clock 
from  DOS,  you  can  select  various 
options  by  appending  commands 
after  typing  CLOCK.  Each  com- 
mand consists  of  a  slash  (/)  symbol, 
a  character,  and  sometimes  a  num- 
ber. Here  are  the  commands  and 
options: 

/Ch  (Chime)  where  n  is  an 
integer  from  0  to  3.  /CO  means  no 
chiming;  /CI  makes  the  clock 
chime  hourly;  /C2  chimes  every 
half-hour;  and  /C3  chimes  every 
15  minutes.  A  chime  is  a  low  beep 


which  lasts  for  less  than  one  sec- 
ond. Even  if  the  screen  updates  are 
turned  off.  Screen  Clock  always 
chimes  if  you  have  told  it  to.  The 
default  is  no  chiming. 

/Uh  (Update)  where  n  is  an 
integer  from  1  to  9.  This  sets  how 
often  screen  updates  are  to  take 
place — n  is  the  number  of  half- 
seconds  between  updates.  The 
more  frequent  the  updates,  the 
more  often  the  date  and  time  are 
refreshed  on  the  screen.  However, 
more  frequent  updates  also  make 
other  programs  run  more  slowly. 
The  default  is  equivalent  to  /U2 
(one  second  between  updates). 

/M  (Military  time).  This  selects 
military  (24-hour)  time. 

/S  (Standard  time).  This  se- 
lects standard  12-hour  time  with  an 
a.m./p.m.  marker.  Screen  Clock 
defaults  to  standard  time. 

/R  (Reset).  This  resets  the  log- 
on timer.  Screen  Clock  automatically 
resets  itself  to  00:00  when  first  run. 

For  example,  typing  CLOCK 
/U3/M/C1  at  the  DOS  prompt 
loads  and  runs  Screen  Clock,  sets 
updates  every  IV2  seconds,  sets  mil- 
itary time,  and  makes  the  clock 
chime  every  hour. 

The  Disappearing  Cloclc 

Occasionally,  the  Screen  Clock  sys- 
line may  get  in  the  way.  For  ex- 
ample, it  may  hide  text  printed  on 
the  top  line  of  the  screen.  You  can 
make  it  disappear  by  pressing 
CTRL  and  both  SHIFT  keys  simul- 
taneously. Pressing  this  combina- 
tion again  turns  the  sysline  back  on. 

Since  Screen  Clock  maintains 
its  own  clock,  it  might  not  agree 
precisely  with  the  DOS  clock.  Gen- 
erally, it's  never  more  than  half  a 
minute  off. 

Note  that  the  day,  date,  and 


April  1986     COMPUTE!      107 


time  are  reset  every  time  you  run 
Screen  Clock.  If  you  change  the 
system  date  and  time,  you  can  reset 
Screen  Clock  by  running  it  again. 
For  example,  the  following  would 
reset  the  display  to  8:00  p.m.  on 
February  14  (the  A>  prompts  are 
supplied  by  DOS): 

A>  time  20:00:00 
A>  date  02-15-86 
A>  clock 

The  log-on  time  is  not  reset  unless 
vou  append  the  /R  command  to 
CLOCK. 

Although  Screen  Clock  makes 
it  appear  that  your  computer  is  do- 
ing more  than  one  thing  at  a  time, 
it's  important  to  remember  that 
computers  can  really  perform  only 
one  task  at  a  time  (a  factor  of  the 
basic  architecture  of  all  personal 
computers  to  date).  If  the  computer 
spends  some  if  its  time  updating  the 
sysline,  that's  time  away  from  run- 
ning the  main  program.  Thus,  the 
more  often  the  sysline  is  updated, 
the  more  time  it  steals  from  the 
computer,  and  the  slower  the  main 
program  seems  to  run.  However, 
the  part  of  Screen  Clock  that  takes 
the  most  time  is  printing  the  sysline 
on  the  screen.  If  screen  updates  are 
turned  off,  there  is  virtually  no 
slowdown.  So  during  heavy  num- 
ber crunching  you  might  want  to 
turn  the  sysline  updates  off. 

I've  been  using  Screen  Clock 
quite  a  bit  and  haven't  noticed 
much  loss  of  performance  at  all.  It 
seems  that  the  computer  spends  a 
lot  of  its  time  waiting  for  input 
(from  the  keyboard,  the  disk  drives, 
and  so  on);  all  we're  doing  is  giving 
it  something  else  to  do  in  its  "spare 
time."  I  have  yet  to  find  a  program 
which  doesn't  work  with  Screen 
Clock. 

As  the  power  of  personal  com- 
puters increases,  it  becomes  possi- 
ble to  include  features  once  found 
only  on  large  mainframe  comput- 
ers. A  sysline  such  as  Screen  Clock 
is  another  step  in  this  direction. 

How  It  Works 

Mainframe  systines  are  generally 
on  the  bottom  row  of  the  screen. 
The  Screen  Clock  sysline,  however, 
must  be  on  the  top  row  because 
there's  no  way  via  PC-DOS  to  keep 
the  bottom  row  from  scrolling.  The 
sysline  would  keep  traveling  up  the 
screen  every  time  the  screen  was 


scrolled.  By  placing  the  sysline  on 
the  top  row,  it  can  be  refreshed 
each  time  it  scrolls  off  the  top  of  the 
screen. 

The  program  itself  is  broken 
into  two  sections,  resident  and  non- 
resident. The  resident  portion  up- 
dates the  internal  counters,  sounds 
the  chimes,  and  updates  the  screen 
display.  It's  driven  by  the  user  in- 
terrupt ICh  and  is  executed  about 
18  times  a  second.  The  nonresident 
part  sets  the  initial  date  and  time 
and  changes  the  program's  options. 

When  you  execute  CLOCK- 
.COM,  the  program  first  checks  to 
see  if  the  resident  portion  is  already 
installed.  This  is  important  only 
when  the  program  returns  control 
to  DOS.  Then  it  sets  the  current 
date  and  time  and  checks  for  any 
optional  parameters.  After  this,  the 
program  is  ready  to  return  to  DOS. 
If  the  program  was  already  in- 
stalled, it  simply  returns  to  DOS 
and  does  nothing  else.  If  it  needs  to 
be  installed,  it  first  deallocates  the 
environment  space,  then  returns  to 
DOS  with  the  "terminate  but  stay 
resident"  call  to  store  the  resident 
portion  of  the  program  safely  in 
memory. 

For  instructions  on  entering  this  listing,  please 
refer  to  "COMPUTEI's  Guide  to  Typing  In 
Programs"  In  this  issue  of  COMPUTE!. 

IBM  Screen  Clock 

EF    100    CLS:  LOCATE    10,  10:  PRINT"Wr 

iting    file    ..." 
DN    110    OPEN    "clock,  cnm"    FOR    OLITP 

UT   flS    #1 
EL    120    FDR    1  =  1    TO    1310:  READ    BYTE 

:CKSUM=CKSUM+BYTE: IF  BYTE 

<0  THEN  FOR  J=l  TO  ABS(BV 

TE) :PRINT#1,CHR«(0) ; rNEXT 
J: GOTO  140 
6H  130  PRINT«1,CHR4(BYTE>; 
60  140  NEXT  I:  CLOSE  1 
FJ  150  IF  CKSUrt  <>  124185  THEN  P 

RIIMT"»«  Error  in  DATfi  sta 

tements  «»":KILL  "clock. c 

ont"  :STOP 
HJ  160  PRINT:PRINT"File  for  cloc 

k.com  has  been  created.": 

END 
KN   200  DATA  233,51,4,74,97,110, 

32,70,101,98,32,77 
DE   210  DATA  97,114,32,65,112,11 

4,32,77,97, 121,32,74 
EB   220  DATA  117,110,32,74,117,1 

08,32,65,  117,  103,32,83 
NP   230  DATA  101,112,32,79,99,11 

6,32,78,111, 118,32,68 
NJ   240  DATA  101,99,32,31,28,31, 

30,31,30,31,31,30 
FP   250  DATA  31,30,31,83,117,110 

,32,77, 111, 110,32,B4 
JK   260  DATA  117,101,32,87,101,1 

00, 32, 84, 104, 117, 32, 70 
PH   270  DATA  114,105,32,83,97,11 


6,32,-6,1,0,1,80 
SE   280  DATA  19,2,-5,240,18,0,1, 

-86, 13,255,80,97 
ItL   290  DATA  117,108,80,83,81,82 

,86,87,85,30,6, 140 
SK   300  DATA  200,142,216,142,192 

,232, 198, 1,232,45,0,232 
OP   310  DATA  133,0,160,108,1,58, 

6,  109,  1,  114,23,  1B7 
BH   320  DATA  91,1,232,158,1,137, 

14.95. 1.232. 144.0 

CJ   330  DATA  128,62,111,1,0,116, 

3,232,250,0,7,31 
Gi   340  DATA  93,95,94,90,09,91,8 

8,207, 180,2,205,22 
NC   350  DATA  36,7,60,7,116,6,198 

,6,  115,  1,0,  195 
m      360  DATA  128,62,113,1,0,117, 

67. 128.54. 111.1.1 

SJ   370  DATA  198,6,115,1,1,128,6 

2, 111, 1,0, 116,4 
ft      380  DATA  232,197,0,195,180,1 

5,205, 16, 136,62, 114,  1 
C»   390  DATA  180,3,205,16,137,22 

, 112, 1, 180,2, lB6,-2 
JH   400  DATA  205,16,185,31,0,176 

,32, 180, 14,205, 16,226 
KO   410  DATA  250,180,2,133,62.11 

4, 1, 139,22, 112, 1,205 
PR   420  DATA  16,195,128,62,199,1 

, 255, 1 16, 25, 160, 199, 1 
Nft   430  DATA  58,6,198,1,119,5,25 

4,6, 199, 1, 195, 198 
Ja   440  DATA  6,199,1,255,228,97, 

36,252,230,97, 195, 138 
«   450  DATA  22,197,1,128,250,0, 

117, 1, 195, 128,62,95 

00  460  DATA  1,0,117,8,128,62,19 

6, 1,0, 116,62, 195 
DC   470  DATA  128,250,1,116,50,12 

8,62,95,1,30, 117,8 
fti      480  DATA  128,62,196,1,0,116, 

42, 195, 128, 250, 2,116 
KK   490  DATA  30,128,62,95,1,15,1 

17,8, 128,62, 196, 1 
BF   S00  DATA  0,116,22,195,128,62 

,95,1,45,117,8, 128 
OH   510  DATA  62,196,1,0,116,7,19 

5, 198,6, 196, 1,0 
n      520  DATA  195,198,6,196,1,1,1 

98,6,199, 1,0,176 
33      530  DATA  182,230,67,184,102, 

10,230,66, 138, 196,230,66 
BF   540  DATA  228,97,12,3,230,97, 

195, 198,6,108, 1,0 

01  550  DATA  191,116,1,252,139,5 

4, 102, 1,209,230,209,230 
PJ   560  DATA  129,198,63,1,185,4, 

0,243, 164, 139,54,97 
SC   570  DATA  1,209,230,209,230,1 

29, 198,255,0, 185,4,0 
BE   580  DATA  243,164,160,99,1,23 

2,22, 1,184,44,32, 171 
FK   590  DATA  160,101,1,232,12,1, 

160,  100,  1,232,6,  1 
FO   600  DATA  176,32,170,139,14,9 

5, 1, 138,38, 110, 1,232 
CE   610  DATA  1,1,184,32,40,171,1 

87, 104, 1,232,58,0 
!P   620  DATA  130,1,232,242,0,176 

,41, 170, 180, 15,205, 16 
N3   630  DATA  136,62,114,1,180,3, 

205,16, 137,22,112,  1 
FP   640  DATA  180,2,186,-2,205,16 

,190,116,1,139,207,43 
KH   650  DATA  206,172,180,14,205, 

16,226,249, 1S0, 2, 138,62 
IH   660  DATA  114,1,139,22,112,1, 

205, 16, 195, 139,87,2 
NB   670  DATA  139,7,187,69,4,247, 

243, 179,60,246,243, 138 
CK   680  DATA  232,138,204,195,137 

,91,1,232,16,0, 115,3 


106     COMPUTEl      April  1<?86 


AD      690   DftTfl    232,43,0,107,104,1, 

232,5,0,254,6, 10B 
JL      700   DATA    1,195,255,7,117,3,2 

55,71,2,131,127,2 
Dl      710   DATA   24,114,  17,129,63,17 

6,0, 114, 11,199,7,-2 
FJ      720    DATA    199,71,2,-2,249,195 

,248,195,255,6, 102, 1 
HH      730    DATA    131,62,102,1,6,118, 

6,199,6,102,1,-2 
iA      74B    DATA    254,6,99,1,139,22,-? 

7,1,232,49,0,50 
on      750    DATA    22,99,1,115,42,198, 

6,99,1,1,255,6 
NI      760    DATA    97,1,131,62,97,1,12 

, 118,26, 199,6,97 
PL      770    DATA    1,1,0,254,6,100,1,1 

28,62,100,1,99 
Fft      780    DATA    118,9,198,6,100,1,0 

,254,6,101, 1, 195 
PD      790    DATA    138,218,50,255,133, 

151,50, 1, 128,231,2, 117 
Cft      800    DATA    16,246,6,100,1,3,11 

7,9, 128,62, 100, 1 
OH      810    DATA    0,116,2,254,194,195 

,212, 10,5,48,48,134 
IE      820    DATA    196,171,195,182,32, 

128,252, 1, 116, IB, 182,65 
EB      830    DATA    128,253,12,114,5,18 

2, 80, 128, 237, 12, 10, 237 
EK      040    DATA    117,2,181,12,138,19 

7,232,217,255, 176,58, 170 
JL      050    DATA    138,193,232,209,255 

, 128,254,32, 116,3, 138,198 
KB      060    DATA    170,195,82,101,113, 

117, 105, 114, 101, 115,32,68 
m      870    DATA   79,83,32,50,46,46,3 

2, 111, 114,32,97,98 
CE      880    DATA    111,118,101,46,13,1 

0,36,78,111, 119,32,105 
P3      890    DATA    110,115,116,97,108, 


108,105, 110, 103,32.114, 10 
1 

FI   900  DATA  115,105,100,101,110 
,116,32,112, 111,114, 116, 1 
05 
BH   910  DATA  111,110,32,111,102, 

32,67,76,79,67,75,46 
OX   920  DATA  13,10,36,39,32,117, 

110, 107,110, 111,119, 110 
CH   930  DATA  32,112,97,114,97,10 

9, 101, 116, 101, 114,46, 13 
PH   940  DATA  10,36,83,112,101,99 

, 105,102, 121,32,97,32 
ED   950  DATA  110,117,109,98,101, 
114,32, 102,114, 111,109,32 
JK   960  DATA  49,45,57,32,102,111 

, 114,32,39,85,39,32 
KB   970  DATA  115,119,105,116,99, 

104, 13,10,36,83,112, 101 
JE   980  DATA  99,103,102,121,32,9 

7,32, 110, 117, 109,98, 101 
FO   990  DATA  114,32,102,114,111, 

109,32,48,45,51,32, 102 
OP   1000  DATA  111,114,32,39,67,3 

9,32, 115, 119, 105, 116,99 
OB   1010  DATA  104,13,10,36,-2,47 

,180,48,205,33,60,0 
Kl   1020  DATA  117,9,186,125,4,18 

0,9,205,33,205,32, 184 
EC   1030  DATA  0,55,205,33,136,22 

,53,5, 187, 125,4,  177 
PF   1040  DATA  4,211,235,67,137,3 

0,51,5, 184,28,53,205 
Hil   1050  DATA  33,190,200,1,141,1 

27, 252, 185, 4, 0, 252, 243 
IE      1060    DATA    166,  131,249,0,  lie,, 

41, 180,9,186,154,4,205 
10       1070    DATA    33,184,28,37,186,2 

04,  1 , 205, 33, 30, 7, 232 
JE   1080  DATA  32,0,232,87,0,161, 
44,0, 142, 192, 180,73 


KP   1090  DATA  205,33,184,0,49,13 

9,22,51,5,205,33,232 
HJ   1100  DATA  8,0,232,63,0,184,0 

,76,205,33,6,31 
U      1110  DATA  180,0,205,26,137,2 

2,91,  1,137,  14,93,  1 
BD   1120  DATA  180,42,205,33,50,2 

28, 163,102, 1, 13B, 198, 163 
JD   1130  DATA  97,  1,136,22,99,1,  1 

98,6,101, 1, 19, 129 
BI   1140  DATA  233,108,7,128,249, 

99, 118,7, 128,233, 100,254 
m      1150  DATA  6,101,1,136,14,100 

, 1, 195,30,14,31, 190 
Bf   1160  DATA  129,0,252,172,60,3 

2, 116,251,60, 13, 116,51 
BN   1170  DATA  58,6,53,3,116,241, 

138, 224, 36, 223, 60, 82 
IL   1180  DATA  116,39,60,77,116,5 

1,60,83, 116,55,60,85 
06   1190  DATA  116,39,60,67,116,9 

0,80, 178,39, 180,2,205 
LP   1200  DATA  33,88,138,212,180, 

2, 205, 33, 106, 198, 4, 180 
KC   1210  DATA  9,205,33,31,195,38 

,199,6, 104, 1,-2,3Q 
CI   1220  DATA  199,6,106,1,-2,235 

,170,38, 198,6, 110,1 
(E   1230  DATA  1,235,170,38,198,6 

,110,1,0,233, 162, 172 
QD   1240  DATA  60,49,114,21,60,57 

,119,17,44,48, 177,3 
FN   1250  DATA  138,224,210,228,2, 

224,38, 136,38, 109, 1,235 
EC   1260  DATA  136,186,221,4,180, 

9,205,33,235, 187, 172,60 
LB   1270  DATA  48,114,13,60,51,11 

9,9,44,48,38, 162, 197 
LO   1280  DATA  1,233,109,255,186, 

B, 5, 180, 9, 205, 33, 235 
Lh   1290  DATA  160,0  © 


CAPUTE! 


SpeedCalc  Fixes 

There  are  two  errors  in  the  DOS  3.3  listing 
for  Apple  SpeedCalc  in  the  February  1986 
issue  (Program  1,  p.  95).  Lines  0FE2  and 
1 1F2  from  the  listing  cannot  be  entered  as 
shown  because  smudged  characters  were 
inadvertently  changed  when  retouched. 
The  lines  should  read  as  follows: 

0FE2:  CA  10  EB  CA  9D  00  02  E8  6E 
11F2:   FS    24  85  IE    20  22  OB  60  AB 

These  changes  are  not  necessary  if 
you  have  the  February  1986  Apple  COM- 
PUTE! DISK;  the  program  on  disk  is  correct. 

ProDOS  users  will  very  likely  en- 
counter the  message  ERROR  #56  when 
they  attempt  disk  operations  wdth  that 
version.  To  correct  this,  you  need  to  con- 
vert the  binary  (BIN)  format  file  created 
by  "Apple  MLX"  into  a  system  (SYS) 
format  file.  To  do  this,  first  use  the  RE- 
NAME command  to  give  the  copy  of 
SpeedCalc  you  entered  with  MLX  the 
name  SPEEDCALC. MLX.  (Make  sure  that 
there  is  no  file  called  just  SPEEDCALC  on 
the  disk.)  Then  enter  the  three  commands 
below,  each  on  a  separate  line  and  each 
followed  by  pressing  RETURN; 


BLOAD  SPEEDCALC.MLX 
CREATE  SPEED  CALCTSYS 
BSAVE  SPEEDCALC,  A$2000,E$3D67, 
TSYS 

The  new  SPEEDCALC  file  now  on 
the  disk  should  function  properly.  Simply 
enter  -SPEEDCALC  to  start  it  running. 
SpeedCalc  already  appears  as  a  SYS  file  on 
the  COMPUTE!  DISK  for  February,  so  this 
change  is  not  necessary'  if  you  have  the 
disk. 

Speedy  Strings  For  Commodore 

The  "Fast  Disk  Catalog"  utility  (Program 
3,  p.  66)  from  this  ardcle  in  the  February 
issue  does  not  work  as  listed.  The  SYS 
addresses  assume  that  the  machine  lan- 
guage has  been  appended  to  the  end  of 
the  program,  as  was  done  for  Program  2. 
There  are  two  possible  solutions.  You  can 
change  the  lines  below  so  that  the  ma- 
chine language  is  POKEd  in  and  ad- 
dressed properly: 

GM  50  DIMFS(MH) :A=0 

CF  100  OPEN1,8,0, "$0":SYS(AA) : 

CLOSElrCLOSElS 
EC  120  PRINTX5: PRINT "{CYNJ   "R 


IGHTS(F$CC-1 ),2),C-B,C, 
MM-C : B=C : AA=AA-H6 : GOTO80 
XG  200  POKE9a7,70:POKE98a,0:SY 
S(AD) 

Alternatively,  you  can  append  the 
machine  language  to  the  end  of  the  pro- 
gram as  was  done  for  Program  2.  This 
results  in  a  shorter  program  that  runs 
faster.  To  do  this,  don't  change  any  lines  in 
the  program  as  listed.  Instead,  add  the  lines 
shown  below,  then  type  RUN  500.  When 
the  program  ends,  delete  line  25  and  all 
lines  above  330,  then  immediately  save  a 
copy  of  the  revised  program. 

GJ  500  POKE  45, (PEEK(45)-H17)A 
ND  25  5: POKE  46, PEEK (46) 
+I-(PEEK(45)<117) 

KG  510  POKE  47, PEEK ( 45 ): POKE  4 
8, PEEK ( 46 ): POKE  49, PEEK 
(45)!POKE  50,PEEK(46) 

GJ  520  RESTORE:AD=PEEK(45)-l-256 
*PEEK(46)-373:FOR  1-0  T 
O  367: READ  D:POKE  AD+I, 
D:NEXT 

GK  530  PRINT" (2  DOWN) DELETE  LI 
NE  2  5  AND  ALL  LINES  ABO 
VE  330,  THEN  SAVE  NEW  V 
ERSION":END 

KC  1105  DATA  0  © 


April  1984     COMPUTEI      109 


The  World  Inside  the  Computer 


Fred  D'Ignazio,  Associate  Editor 


The  Robot  Inside  You 


Why  are  children  so  fascinated  with 
robots?  For  that  matter,  why  is  ev- 
eryone so  fascinated  with  robots? 
The  answer  is  that  robots  seem  the 
most  lifelike  of  all  machines,  and 
the  most  like  real  people. 

When  we  see  a  little  robot 
"toddler"  like  HEROjr  sing  songs  to 
a  trashcan,  or  when  we  watch  a 
Movit  robot  like  the  WAO  (pro- 
nounced "Wow")  skitter  crablike 
around  the  kitchen  floor,  avoiding 
tables  and  gargantuan  human  feet, 
we  feel  an  uncanny  thrill,  as  if  we 
are  watching  a  minor  miracle.  We 
know  that  these  little  machines  are 
not  alive.  But  they  are  sending  visu- 
al cues  of  "aliveness"  to  the  deepest 
parts  of  our  brain,  And  these  visual 
processing  centers  are  flashing  the 
message  "Alive!  Alive!"  to  the 
higher-level,  rational  center  of  our 
brain.  We  can  deny  that  the  ma- 
chines are  alive,  but  we  will  continue 
to  feel  that  somehow  they  really  are. 

Young  children  most  strongly 
and  visibly  reflect  this  sense  of  the 
aliveness  of  robots.  Children's  un- 
fettered imaginations  and  their  in- 
complete mastery  of  the  scientific 
view  of  the  world  (so  ingrained  in 
us  adults)  cause  them  to  see  all  sorts 
of  objects  as  being  alive — including 
teddy  bears,  dolls,  shadows,  imagi- 
nary friends,  and,  of  course,  robots. 
For  them,  the  logic  is  simple:  If  it 
seems  alive  and  acts  alive,  then  it 
must  be  alive. 

Not  only  do  children  ascribe 
the  quality  of  aliveness  to  an  object 
based  on  its  behavior,  but  they  also 
project  a  psychology — a  personal- 
ity or  character — into  the  object. 
The  object's  personality  stems  part- 
ly from  its  behavior  (if  a  robot  sings 
to  a  trashcan,  it  must  be  a  "silly" 
robot),  but  also  as  a  projection  of 
children's  own  personalities — their 
wishes,  dreams,  fears,  and  subcon- 
scious feelings.  It  would  be  impos- 
sible for  children  to  articulate  what 
these  feelings  and   attributes  are, 


but  they  sense  them  immediately  in 
a  teddy  bear,  a  beloved  blanket,  or 
an  animated  little  robot. 

The  being  that  children  see  in 
these  objects  is  very  real,  since  it  is  a 
part  of  themselves.  It  may  be  their 
dark  side,  light  side,  or  their  happy 
or  sad  side,  but  it  is  an  expression  of 
a  dimension  of  their  own  personal- 
ity. Collectively  these  dimensions 
form  children's  complex,  often  con- 
tradictory humanity.  In  a  real  sense, 
then,  there  is  a  robot — a  multitude 
of  robots — inside  every  chUd;  in- 
deed, there  are  robots  inside  every 
one  of  us. 

It  is  interesting  to  watch  chil- 
dren struggle  with  the  "Is  it  alive  or 
not?"  dilemma  presented  by  to- 
day's robots  and  lifelike  computer 
programs  because  we  will  all  soon 
be  facing  this  dilemma.  In  the  com- 
ing years  we  adults  will  find  our 
rational,  scientific  view  of  machines 
and  other  nonliving  objects  chal- 
lenged by  their  increasingly  lifelike 
characteristics.  Their  speech,  mo- 
bility, sense  of  the  world  around 
them,  and  lifelike  response  are  im- 
proving rapidly.  All  these  traits  will 
soon  offer  compelling  evidence  to 
our  subconscious  that  the  machines 
are  really  alive. 

Kids  feel  this  way  already.  For 
example,  one  little  neighborhood 
boy  of  COMPUTE!  staffer  Debi  Nash 
played  the  new  Activision  game 
"Modern  Computer  People"  in 
which  little  beings  live  inside  the 
computer  and  interact  with  the 
world  outside.  The  boy  believed  in 
the  little  creatures,  and  came  by  the 
Nash's  house  every  day  to  talk  with 
them  and  watch  them  live  their 
lives.  Unfortunately,  one  of  the  lit- 
tle people  began  to  overeat.  No 
matter  what  Debi  and  her  family 
did,  he  kept  stuffing  himself.  Sud- 
denly the  program  crashed,  and  the 
person  disappeared.  Debi  told  me 
that  telling  the  boy  about  the  per- 
son's demise  was  as  hard  to  do  as 


telling  him  that  one  of  his  friends 
had  died. 

Here  in  Birmingham,  my  six- 
year-old  son  Eric  recently  spent  a 
couple  days  with  A.G.  Bear  from 
Axlon  Corp.  A.G.  talks  in  bear  lan- 
guage but  mimics  human  speech 
tones  and  rhythms  with  a  little  mi- 
crochip in  a  voice  box  inside  his 
chest.  When  Eric  took  A.G.  to  bed 
the  first  night,  he  had  to  take  the 
voice  box  out  of  A.G.  and  leave  it 
on  the  coffee  table  in  the  living 
room.  Otherwise,  A.G.  would  have 
begun  talking  every  time  Eric  rolled 
over  in  bed  or  muttered  something 
in  his  sleep.  Eric  happily  took  the 
bear  to  bed  with  him,  but  before  he 
did  he  rushed  over  to  the  coffee 
table  and  wished  the  voice  box 
good  night.  As  I  watched  this  little 
ritual  from  across  the  living  room,  I 
had  the  weird  feeling  that,  for  Eric, 
the  voice  box  somehow  held  the 
little  bear's  electronic  soul. 

Last  week,  my  nine-year-old 
daughter  Catie  and  I  were  at  the 
Bits  &  Bytes  Computer  Show  for 
Children  in  Dallas,  Texas.  Together, 
she  and  I  spoke  to  almost  400 
schoolchildren  about  "Robot  Pets  & 
Friends."  We  demonstrated  several 
popular  robots,  including  Omnibot 
2000,  the  Movit  Family,  and 
HEROjr,  and  we  held  a  "Design 
Your  Own  Robot"  contest  which 
Catie  judged. 

The  children's  robot  designs 
were  original,  diverse,  and  com- 
plex. To  some  extent,  they  resem- 
bled the  robots  that  Catie  and  I  had 
demonstrated  and  the  robots  of 
popular  movies  and  TV  shows.  To  a 
much  greater  extent,  however,  they 
were  reflections  of  the  children's 
own  personalities.  They  were  a  re- 
vealing glimpse  of  the  robots  that 
dwell  inside  all  of  us.  © 


110     COMPUTEI     April  1966 


Computers  and  Society 


David  D,  Thornburg.  Associate  Editor 


Humanizing  The  User  Interface,  Part  2 


Last  month  \  wrote  about  several 
ways  to  make  software  easy  to  use. 
Now  let's  look  at  a  model  of  human 
behavior  that  may  hold  the  key  for 
those  who  want  to  make  computer 
programs  that  really  stand  apart 
from  the  crowd. 

Psychologists  and  sociologists 
have  spent  a  lot  of  time  trying  to 
figure  out  why  people  perform  ac- 
tivities like  rock  climbing,  playing 
chess,  and  performing  other  tasks 
for  which  the  motivation  appears  to 
be  internal  (or  autotelic).  One  be- 
havioral scientist  who  has  studied 
this  area  in  some  depth  is  Mihaly 
Csikszentmihalyi,  whose  book, 
"Beyond  Boredom  and  Anxiety" 
(Josey-Bass,  Inc.,  1975),  makes 
some  observations  that  are  of  great 
value  to  those  of  us  involved  with 
the  design  of  user  interfaces. 

I  believe  that  a  good  user  inter- 
face makes  the  computer  transpar- 
ent to  the  user  so  he  or  she  is  free  to 
interact  purely  with  the  application. 
Now  look  at  some  comments  (typi- 
cal of  many)  that  Csikszentmihalyi 
collected  from  people  involved 
with  activities  like  playing  chess: 
"The  game  is  a  struggle,  and  the 
concentration  is  like  breathing — 
you  never  think  of  it.  The  roof 
could  fall  in  and,  if  it  missed  you, 
you  would  be  unaware  of  it." 

A  rock  climber  said:  "You  are 
so  involved  in  what  you  are  doing 
that  you  aren't  thinking  of  yourself 
as  separate  from  the  immediate  ac- 
tivity. You  don't  see  yourself  as 
separate  from  what  you  are  doing." 

The  people  described  above 
are  in  "flow" — a  state  where  action 
and  awareness  have  merged.  In  this 
state  the  connection  between  the 
participant  and  the  activity  is  so 
close  that  everything  else  seems  to 
disappear. 

Each  of  us  has  experienced 
flow  at  one  time  or  another — per- 
haps while  playing  a  game  or 
watching  a  movie.   But  flow  is  a 


hard  state  to  maintain.  For  ex- 
ample, a  computer  user  might  expe- 
rience flow  with  a  video  game,  only 
to  be  bumped  out  of  this  state  by 
the  computer  not  responding  fast 
enough,  or  by  requiring  the  entry  of 
a  complex  command  that  needs  to 
be  thought  about  consciously. 

People  who  are  not  in  a  state  of 
flow  are  often  in  a  state  of  boredom 
or  anxiety.  Flow  appears  as  a  nar- 
row band  between  the  two. 

When  a  person  feels  that  the 
complexity  of  a  task  is  too  great  for 
his  or  her  skill  level,  a  state  of  anxi- 
ety is  produced.  On  the  other  hand, 
someone  who  has  a  lot  of  skill  will 
be  bored  if  the  challenges  are  not 
great  enough.  Flow  exists  when  the 
complexity  of  a  task  is  appropriate 
for  the  skill  of  the  participant. 

As  many  readers  will  attest, 
good  video  games  provide  a  nice 
model  of  the  flow  state.  Most  games 
allow  the  player  to  progress 
through  a  series  of  levels.  The  first 
level  may  induce  anxiety  in  the 
novice  player,  but  the  player  then 
acquires  enough  skill  to  enter  a 
state  of  flow.  The  trick  in  good 
game  design  is  to  progressively  in- 
crease the  challenge  level  so  that,  as 
the  player  becomes  more  skilled, 
boredom  doesn't  set  in. 

This  same  model  could  be  ap- 
plied to  the  design  of  other  types  of 
programs.  For  example,  a  full- 
featured  word  processor  might  start 
out  by  encouraging  the  user  to 
work  with  only  a  limited  set  of  fea- 
tures, making  the  product  easy  to 
learn.  As  the  user's  skill  increases 
more  and  more  features  can  be  re- 
vealed until  the  product  is 
mastered. 

This  model  of  the  flow  state 
can  help  us  understand  another  as- 
pect of  program  design  that  seems 
to  be  misunderstood  by  some  peo- 
ple. There  is  a  difference  between 
making  a  product  easy  to  learn  and 
making  it  easy  to  use.  Ideally  the 


product  should  have  both  of  these 
features.  Instead  we  often  encoun- 
ter programs  that  provide  a  tremen- 
dous amount  of  hand-holding  for 
the  neophyte,  but  which  are  cum- 
bersome to  use  once  the  product  is 
mastered.  Ease  of  learning,  in  this 
case,  makes  the  product  cumber- 
some to  the  proficient  user. 

Many  of  the  complaints  that 
have  been  lodged  against  the  early 
releases  of  Macintosh  software  can 
be  traced  to  this  conflict.  The  use  of 
pull-down  menus  is  wonderful  to 
the  first-time  user,  since  various  op- 
tions and  commands  can  be  pre- 
sented in  plain  English.  However, 
the  physical  act  of  moving  the 
mouse  to  the  menu  bar,  opening 
the  menu,  moving  the  mouse  to  the 
desired  selection,  and  selecting  this 
item,  is  cumbersome  to  the  user 
who  already  knows  what  choice  he 
or  she  wants  to  make.  This  is  why 
an  increasing  number  of  Macintosh 
programs  have  single  keystroke 
equivalent  commands  for  menu  se- 
lections. For  example,  a  menu  item 
named  SAVE  is  a  more  obvious 
command  than  Ctrl-S,  but  the  latter 
is  an  easier  command  to  give,  once 
the  user  knows  its  meaning. 

Ideally,  programs  should  pro- 
vide a  seamless  transition  from  be- 
ing easy  to  learn  to  being  easy  to 
use.  Each  computer  user  should  be 
free  to  learn  at  his  or  her  own  rate. 

In  the  past,  such  programs 
were  hard  to  create,  given  the  limi- 
tations of  the  computers  on  which 
they  were  running.  Now  that  the 
Macintosh  and  the  Amiga  have  en- 
tered the  scene,  computer  horse- 
power is  no  longer  an  issue.  The 
time  has  come  for  computers  to  be- 
come as  easy  to  use  as  any  other 
appliance  we  have  at  home.        © 


April  1966     COMPUTEI      111 


The  Beginners  Page 


Tom  R.  Holfhill,  Editor 


More  String-Slicing 


Last  month  we  saw  how  you  can 
copy  pieces  of  character  strings 
using  the  LEFTS  and  RIGHTS  func- 
tions found  in  versions  of  Microsoft 
BASIC.  For  even  more  flexibility, 
most  Microsoft-style  BASICs  in- 
clude a  third  function  for  extracting 
sections  of  strings.  Called  MID$ 
("mid-string"),  this  function  lets 
you  copy  a  section  from  the  middle 
of  a  string. 

The  basic  format  is  M1D$ 
[string$,nl,n2),  Vi^here  stringS  is  a 
string  variable  or  literal  string;  nl  is 
a  number  representing  the  begin- 
ning character  position  of  the 
substring  you  want  to  extract;  and 
n2  is  a  number  representing  the 
number  of  characters  in  the  sub- 
string you  want  to  extract.  For 
example: 

10  A$  =  "JAMES  FENIMORE  COOPER" 
20  PRINT  MID$(AS,7,8) 
30  B$  =  MID$(A5,11,4) 
40  PRINT  B$ 
50  PRINT  AS 

When  you  run  this  program,  the 
result  is: 

FENIMORE 
MORE 

JAMES  FENIMORE  COOPER 

Line  20  prints  the  eight  charac- 
ters starting  at  position  seven  in  A$, 
resulting  in  the  substring  FENI- 
MORE. (Remember  that  spaces 
count  as  characters.)  Lines  30  and 
40  do  much  the  same  thing,  but 
copy  the  four  characters  starting  at 
position  11  into  the  string  variable 
B$  before  printing  them  out.  This 
method  is  useful  if  you  need  to 
print  B$  later  in  your  program  or 
manipulate  B$  in  some  other  way. 
Line  50  shows  that  the  M1D$  func- 
tion, like  LEFTS  and  RIGHTS,  does 
not  disturb  the  original  contents  of 
AS. 

M1D$  is  handy  for  so  many 
different  things  that  it's  hard  to 
come  up  with  a  generalized  ex- 
ample. It  can  even  be  used  to  re- 
place LEFTS  and  RIGHTS— for 
instance,  MID$(A$,1,10)  is  equiva- 


lent to  LEFT$(A$,10),  and  MID$(A- 
S,LEN(A$)-9,LEN(A$))  is  the 
same  as  RIGHT$(AS,10).  One  use- 
ful application  of  MID$  is  to  store  a 
bunch  of  short  strings  as  a  single 
long  string,  then  pick  out  the 
substring  you  want  with  MID$.  For 
example,  let's  say  you're  writing 
some  sort  of  program  that  needs  to 
print  out  the  months  of  the  year, 
perhaps  as  labels  for  a  budget  or 
chart.  You  could  abbreviate  the 
names  of  the  months  as  equal- 
length  substrings  within  one  large 
string,  like  this: 

10  M$  =  "JANFEBMARAPRMAYJUNJUL 
AUGSEPOCTNOVDEC" 

Now  suppose  that  the  numeric 
variable  M  contains  the  number  of 
the  month  you  need  to  print  out — 
maybe  as  a  result  of  an  INPUT 
statement: 
20  PRINT  "WHICH  MONTH  TO 

PRINT"; 
30  INPUT  M 
40  PRINT  MID$(M$,M*3-2,3) 

Depending  on  the  user's  response 
(1  for  January,  2  for  February,  etc.), 
line  40  prints  out  the  proper  month 
name.  Or  you  could  print  out  all  the 
months  with  a  loop — FOR  M  =  l 
TO  12:PR1NT  MID$(M$,M*3-2,3) 
:NEXT  M. 

Storing  all  the  months  in  a  sin- 
gle string  and  extracting  the  one 
you  want  with  MID$  is  more  effi- 
cient than  using  12  separate  strings 
for  the  same  purpose.  It's  also  more 
efficient  in  some  ways  than  a  string 
array  (a  subject  we'll  cover  in  a 
future  column). 

Atari  And  Tl  Strings 

There  are  no  LEFTS,  RIGHTS,  or 
MIDS  functions  in  TI  BASIC  or  the 
Atari  BASIC  found  on  Atari 
400/800,  XL,  and  XE  computers. 
These  BASICs  handle  strings  a  little 
differently  than  Microsoft  BASIC 
does.  (Note  that  Microsoft  BASIC  is 
available  on  cartridge  for  Atari 
computers,  and  some  BASICs  avail- 
able  from   independent   suppliers 


also    support    Microsoft-style 
strings.) 

Tl  BASIC'S  statement  for  seg- 
menting strings  is  SEG$.  It  works 
exactly  like  M1D$  in  Microsoft 
BASIC— the  statement  B$  =  SEG$ 
(AS, 11, 4)  is  equivalent  to 
B$  =  MIDS(A$,11,4).  You  can  simu- 
late LEFTS  with  a  statement  in  the 
form  SEG${string$,nl,n2),  where 
strings  is  the  string  you  wish  to 
manipulate,  nl  is  the  starting  char- 
acter position  of  the  segment  within 
the  string,  and  nZ  is  the  number  of 
characters  you  wish  to  print  or 
copy.  For  example,  the  statement 
B$  =  LEFT$(A$,6)  can  be  replaced 
with  B$  =  SEGS(A$,1,6). 

Simulating  RIGHTS  is  a  bit 
more  complicated.  You  need  a 
statement  in  the  form  SEG$(string- 
$,L^N{stringS)  —  nl,n2),  where  ii2  is 
the  number  of  characters  you  wish 
to  print  or  copy,  and  nl  is  n2  — 1. 
For  example,  B$  =  RIGHT$(A$,6} 
can  be  replaced  with  B$  =  SEG$ 
(A$,LEN(AS)-5,6). 

Atari  BASIC  requires  the  same 
sort  of  manipulations.  To  print  or 
copy  any  substring  in  Atari  BASIC, 
simply  specify  the  starting  and  end- 
ing character  positions  of  the 
substring  within  the  larger  string. 
To  translate  B$  =  LEFT$(A$,6),  use 
BS  =  A$(1,6).  To  simulate  RIGHTS, 
use  a  statement  in  the  form  string- 
$(LEN{string$)-n,lENistri)ig$)), 
where  stwigS  is  the  string  you're 
manipulating  and  n  is  the  number 
of  characters  you  wish  to  print  or 
copy  minus  one.  For  instance,  to 
translate  B$  =  RIGHTS(AS,6),  use 
B$  =  A$(LEN(A$)-5,LEN(AS)).  To 
simulate  MIDS,  use  the  statement 
string$(nl,n2),  where  nl  is  the  start- 
ing character  position  (just  like 
MIDS),  and  n2  equals  nl  plus  the 
number  of  characters  you  wish  to 
print  or  copy  minus  one.  Thus,  the 
Microsoft  statement  B$  =  MID$ 
(AS,  11, 4)  is  translated  as  B$=A$ 
(11,14).  © 


112     COMPOTEI     Apnt  1986 


Telecomputing  Today 


Arlon  R,  Leviton 


An  April  Trade  Show  Report 


While  most  of  the  computer  press 
converged  on  Lost  Wages,  Nevada 
in  November  of  1985  to  attend  yet 
another  humdrum  computer  trade 
show,  this  columnist  packed  up  his 
gear  and  headed  for  a  countercul- 
ture communications  fest  held  on 
the  multileveled  U.S.S.  Flotsam,  an 
ex-petro  supertanker  converted  for 
use  as  a  floating  convention  facility. 
Dubbed  COMMDECKS  85  by 
show  sponsor  Aski  Blok,  it  provid- 
ed a  fresh  look  at  the  lunatic  fringe 
of  computer  communications. 

There  had  been  some  doubt  as 
to  whether  the  show  would  get  off 
the  ground  at  all.  Picket  lines  were 
set  up  by  angry  labor  protesters 
who  had  been  wTitten  bad  redun- 
dancy checks  by  the  show  sponsor. 
The  strikers  were  demanding  even 
parity  for  all  data  transmitted  to 
and  from  the  show,  making  it  al- 
most impossible  for  exhibitors  to 
set  up  their  tables  in  the  days  pre- 
ceding the  show's  opening.  In  the 
end,  the  demonstrators  dropped 
their  parity  demands  in  exchange 
for  14  percent  more  than  they  had 
been  receiving,  plus  additional  time 
off  in  the  form  of  one  extra  data  bit 
and  two  stop  bits. 

It's  hard  to  pinpoint  the  most 
memorable  products  of  the  show 
(since  I  spent  most  of  my  time  re- 
covering from  the  hors  d'oeuvres 
and  beverages  served  at  evening 
press  conferences),  but  I  owe  it  to 
the  readers  of  this  column  (and  to 
the  IRS)  to  take  a  shot  at  it. 

Don't  Just  Ask  For  A  Ligtit 

For  the  health-minded  telecompu- 
terist,  Natural  Language's  line  of 
optical  wave  modems  are  the  first 
of  the  new  "light"  modems,  trans- 
mitting 30  percent  fewer  characters 
than  their  wire-based  counterparts. 
The  new  units  are  also  said  to  aid 
the  digestion  of  serial  data  (a.k.a. 
"number  crunching")  due  to  their 
high  fiber  optic  content. 

Setting  a  hard  standard  to  beat 


for  intelligent  modems  is  Thought 
System's  new  Kreskin  2400.  How 
smart  is  it?  The  Kreskin  reportedly 
can  detect  a  busy  signal  before  a  call 
is  actually  made.  Some  recent  pro- 
totypes also  refuse  to  dial  a  remote 
Bulletin  Board  System  if  the  unit's 
advanced  circuitry  senses  there  is 
nothing  interesting  to  read  or 
download  on  the  BBS.  The  heart  of 
the  Kreskin  is  a  superfast  propri- 
etary CPU  chip  capable  of  execut- 
ing an  infinite  loop  in  37  seconds.  It 
translates  the  incoming  stream  of 
data  into  your  choice  of  French, 
Italian,  or  Chinese  (English  is  an 
extra-cost  option). 

No  trade  show  would  be  com- 
plete without  the  obligatory  raft  of 
seminars  and  workshops,  and 
COMMDECKS  was  no  exception. 
Things  did  get  off  to  a  confusing 
start,  however,  when  the  kickoff 
session  "The  Future  of  VideoTex" 
turned  out  to  be  a  panel  discussion 
on  merchandising  VCRs  and  TVs  in 
Dallas,  Fort  Worth,  Austin,  and 
Houston. 

The  highlight  of  the  show's 
conference  schedule  had  to  be 
"Null  Modems — Threat  or  Men- 
ace?"— a  discussion  of  the  trend  to- 
ward violence  in  data  communica- 
tions hardware.  The  introduction  of 
the  Ninja,  Terminator,  and  Rambo 
class  of  modem  eliminators  at  the 
show  further  fueled  the  controver- 
sy to  new  heights. 

Micro  Telecomputing 

With  the  price  of  mobile  telephones 

dropping  faster  than  a  brick.  Phy- 
lum Systems  of  Paramecium,  Cali- 
fornia figures  to  cash  in  big  with  a 
$14.95  limited-distance  mobile  mo- 
dem dubbed  the  Amoeba.  Phy- 
lum's vice  president  of  marketing, 
Ernest  Flagella,  says  the  single  cel- 
lular unit  will  be  shipping  either 
"(1)  real  soon  now,  (2)  in  two 
weeks,  (3)  when  the  manual  comes 
back  from  the  printer,  or  (4)  when 
Atari  ST  and  Amiga  owners  stop 


bickering  over  who  bought  the  bet- 
ter machine." 

Meanwhile,  the  Arapaho  Indi- 
an NaHon  is  entering  the  packet- 
switching  network  race  to  serve  the 
communications  needs  of  telecom- 
puterists  in  the  remote  West.  Bow- 
ing to  the  pressure  of  environ- 
mentalist groups,  the  Arapaho 
elders  have  agreed  to  house  their 
telecommunications  equipment  in- 
side structures  disguised  as  totem 
poles.  The  job  of  cabling  the  poles 
has  been  awarded  to  RS-232  ace 
Louie  "Bent  Pin"  Carson.  Although 
Carson  anticipates  a  high  degree  of 
difficulty  in  routing  the  cables  with- 
in the  highly  confined  spaces  of  the 
totems,  he  feels  that  a  shot  at  ever- 
lasting fame  is  worth  all  of  the 
headaches.  When  the  job  is  done, 
Carson  will  have  become  the  first 
man  to  wire  a  head  for  a 
reservation. 

After-hours  entertainment  got 
physical  on  Friday  night  as  any- 
baudy  who  is  anybaudy  attended  a 
sports  competition  for  manufactur- 
ers of  multiuser  LANs  dubbed 
"Battle  of  the  Network  Stars."  Over 
50  teams  vied  for  the  coveted  "Lord 
of  the  Rings"  title,  and  the  highly 
favored  New  York  Subcarriers  were 
disqualified  in  the  early  rounds  for 
passing  bad  tokens  in  the  relay. 

To  be  perfectly  honest,  attend- 
ance at  COMMDECKS  85  was  far 
below  the  anticipated  crowd  of 
25,000  +  ,  While  hanging  over  the 
quarterdeck  railing  on  the  third  day 
of  the  show,  I  bumped  into  promot- 
er Aski  Blok  once  more  and  quizzed 
him  about  the  low  number  of  at- 
tendees. "Well,  it's  really  not  too 
bad  if  you  take  everything  into  ac- 
count," he  said.  "Our  current  loca- 
tion is  kind  of  hard  for  people  to  get 
to.  I  think  it  would  have  been  a  lot 
more  crowded  if  we  hadn't  cast  off 
from  the  docks  for  the  open  C — the 
C  programming  workshop,  that 
is."  © 


April  1986     COMPUTEI      113 


Programming  the  Tl 


C,  Regeno 


Creating  Rhythms 


A  year  ago,  in  the  March  1985  issue 
of  COMPUTE!,  I  published  a  program 
called  "Drum  Practice"  for  the  TI- 
99/4A.  That  program  was  limited 
to  quarter  notes  and  quarter  rests 
and  the  rhythms  listed  in  DATA 
statements.  This  month,  I'm  offer- 
ing a  more  complex  program. You 
can  create  the  rhythm  for  one  mea- 
sure by  choosing  notes  and  rests, 
and  then  the  computer  will  play  the 
rhythm  for  eight  measures. 

Lines  110-190  print  the  in- 
structions. The  different  kinds  of 
notes  and  rests  available  will  ap- 
pear at  the  bottom  of  the  screen. 
You  can  use  the  arrow  keys  (on  S 
and  D)  to  move  the  red  marker  left 
or  right  to  make  your  selection, 
then  press  the  ENTER  key.  Your 
choice  will  then  be  printed  on  the 
staff  above. 

The  available  notes  are  a  quar- 
ter note,  two  eighth  notes  together, 
one  eighth  note,  two  sixteenth 
notes,  a  dotted  eighth  note  with  a 
sixteenth  note,  a  quarter  rest,  and 
an  eighth  rest. 

Line  200  sets  the  time  T  equal 
to  75.  If  you  want  the  rhythm  to 
play  faster  decrease  this  number 
which  represents  the  duration  of  a 
sixteenth  note.  Lines  210-240  read 
in  from  data  (lines  260-330)  the 
definitions  for  the  graphic  charac- 
ters and  define  the  characters  from 
numbers  91  to  128.  Line  340  de- 
fines R  for  a  row  number  for  the 
staff.  Lines  350-360  define  the  red 
arrow  used  as  a  marker  under  the 
notes  to  be  selected. 

Lines  370-390  define  variables 
in  an  array  for  the  seven  possible 
choices.  Line  400  contains  the  data 
for  this  loop.  For  each  of  the  choices 
from  1  to  7,  D(C)  is  a  value  repre- 
senting the  counts — 4  for  one 
count,  2  for  a  half  count.  This  vari- 
able is  used  to  make  sure  the  user 
makes  a  valid  choice.  For  example, 
the  computer  will  not  allow  a  quar- 
ter note  to  be  chosen  if  only  a  half 


of  a  count  is  left  in  the  measure. 
COL(C)  is  the  column  and  is  used 
to  place  the  red  marker. 

The  Rhythm  Track 

S$(C)  represents  the  durations 
when  the  rhythm  is  played.  A  six- 
teenth note  factor  is  1,  so  the  quar- 
ter note  is  4,  Two  eighth  notes  are 
22,  and  one  eighth  note  is  2.  The 
two  sixteenth  notes  are  11,  and  a 
dotted  eighth  with  a  sixteenth  are 
31.  The  rests  are  W  and  H.  As  the 
notes  and  rests  are  chosen,  the 
string  RHY$  will  add  on  values  of 
S$  (line  870). 

Lines  1250-1390  play  the 
rhythm.  Line  1270  finds  the  length 
L  of  the  string  RHY$.  Line  1280 
starts  the  loop  for  L  number  of 
times.  Line  1290  looks  at  one  char- 
acter at  a  time  of  RHY$.  If  the  char- 
acter A$  is  a  letter,  a  rest  is 
indicated  so  a  frequency  of  9999 
with  a  volume  of  30  is  used.  If  A$  is 
a  number,  that  number  is  used  as  a 
factor  times  the  previously  defined 
T  for  the  duration  in  the  CALL 
SOUND  statement,  line  1310.  If 
you  prefer  a  different  sound, 
change  the  frequency  numbers  in 
line  1310.  I  used  the  noise  of  —5 
plus  the  frequency  of  330.  Line 
1370  stops  the  sound  so  you  can 
hear  the  different  notes.  The  mea- 
sure is  played  eight  times. 

Lines  420-440  wait  for  you  to 
press  ENTER  before  the  program 
continues.  Lines  460-500  clear  the 
screen  and  print  the  notes  using  the 
redefined  symbols.  The  lowercase  y 
and  z  are  typed  by  releasing  the 
ALPHA  LOCK  key.  Most  of  the 
symbols  are  typed  by  using  the 
function  key.  Lines  510-630  draw 
the  staff. 

Lines  650-690  initialize  vari- 
ables for  choosing  the  notes. 
COUNT  and  CHECK  are  used  to 
determine  how  many  notes  and 
rests  can  be  used  in  the  measure. 
This  measure  is  4/4  time.  A  six- 
teenth note  has  a  value  of  1,  so  the 


COUNT  will  go  up  to  1 6.  CHECK  is 
how  many  points  are  remaining  in 
the  measure.  These  numbers  are 
used  to  verify  which  notes  and  rests 
can  be  used  in  the  measure. 

PLACE  is  the  column  number 
where  the  note  or  rest  will  start 
being  drawn  on  the  staff.  The  first 
note  will  start  in  column  8.  PLACE 
is  incremented  depending  on  which 
note  or  set  of  notes  is  chosen.  Lines 
690-820  are  the  lines  to  get  the 
user's  choice.  Line  730  makes  sure 
the  left  arrow  key  (S),  the  right 
arrow  key  (D),  or  the  ENTER  key  is 
chosen;  all  other  keys  are  ignored 
by  branching  back  to  the  CALL 
KEY  statement.  C  is  the  choice 
number,  and  COL(C)  is  the  column 
where  the  red  marker  appears  for 
the  choice. 

It's  Timing  That  Counts 

Line  830  makes  sure  the  choice  is 
valid.  The  D  timing  value  must  be 
less  than  or  equal  to  the  number  of 
sixteenth  counts  available.  If  the 
choice  is  not  valid,  the  program 
plays  an  "uh-oh"  sound  and 
branches  back  to  line  720,  which  is 
the  CALL  KEY  statement  to  get  an- 
other choice.  Line  870  increments 
the  RHYS  string  with  the  appropri- 
ate timing  factors.  Line  880 
branches  to  the  proper  place  for 
drawing  the  notes  or  rest  and  incre- 
menting PLACE. 

Lines  1220-1240  increment  the 
COUNT  and  recalculate  the 
CHECK  time.  If  the  measure  is  not 
full,  the  program  goes  back  to  get 
another  choice.  Lines  1250-1390 
play  the  measure  eight  times.  To 
stop  the  program,  press  FCTN 
BREAK. 

If  you  have  trouble  running 
this  program  and  get  an  error  mes- 
sage in  220,  230,  or  380,  the  actual 
cause  of  the  error  is  most  likely  in 
the  DATA  statements  of  lines 
260-330  or  line  400. 

All  notes  are  placed  at  the  E 
space  of  the  staff,  representing  a 


114     COMPUTE!     April  1986 


snare  drum  rhythm.  You  may  add 
to  the  program  by  including  bass 
drum  notes,  cymbal  rhythms,  and 
tom-toms.  To  use  this  program  for  a 
melody  instrument,  you  can  use  the 
up  and  down  keys  to  move  the  note 
on  the  staff,  then  use  a  variable 
frequency  to  play  the  note. 

You  may  use  the  general  idea 
of  this  program  in  choosing  items  to 
go  with  a  different  theme  of  graph- 
ics, not  music — perhaps  building  a 
game  or  drawing  a  picture  by 
choosing  different  shapes. 

Rhythms 

100  REM   RHYTHMS 

110  CALL  CLEAR 

120  PRINT  TAB ( 10) ; "RHYTHMS" 

130  PRINT  :: "CHOOSE  THE  NOT 

ES  FROM  THE" 
140  PRINT  : "BOTTOM  OF  THE  S 

CREEN  BY" 
150  PRINT  : "USING  THE  LEFT 

AND  RIGHT" 
liii0  PRINT  :  "ARRDU  KEYS  TO  M 

OVE  AND" 
170  PRINT  : "THE  ENTER  KEY  T 

D  SELECT. " 
130  PRINT  ::"WHEN  THE  MEASU 

RE  IS  COMPLETE" 
190  PRINT  :"YDU  WILL  HEAR  T 

HE  RHYTHM. " 
200  T=75 

210  FOR  C-91  TO  128 
220  READ  C« 
230  CALL  CHAR(C,Ct) 
240  NEXT  C 
250  REM   DATA  FDR  CHARACTER 

S 
260  DATA  00000F0a0F0S080B, 0 

000Fe0BFB0S0B0S, 0808083 

BF9EB,0000FF0107010101, 

10080Cia30300804, 1C2020 

1008 
270  DATA  000000000000FFD0, D 

0D0FFD0D4D0FFD0, D4D0FFD 

0D0D0FF, 000000000000FF, 

0000FF000000FF, 00000000 

0000FF0B 
280  DATA  0B0BFF0B2B0BFF0B, 2 

B0BFF0B0B0BFF,  000000000 

0  0  0FF10, 2  424447E0404FF1 

, 102424447E04FF,00000B0 

B0a0SFF0a 

290  REM 

300  DATA  0S0aFF7BFB70FF, 000 
00F080808FF08,0000Fa030 
a0BFF08, 0000080C0A09FF0 
B, 00000F0B0F0aFF0B 

310  DATA  0000FB0aFB0BFF0B, 0 
000FF010701FF01,0000FF6 
27E04FF1, 1020FF000000FF 
, 0808FF78F97SFF, 10080C1 
B30300S04 

320  DATA  1C2020100S, 0000080 
808080808, 080a087BFB7,0 
0000F0a0B0a0B0S, 0000F80 
808080806, 00000a0C0A090 
808 

330  DATA  627E020408102, 0101 
FF0F1F0EFF, 01010 10F1F0E 

340  R=5 

350  CALL  CHAR ( 136, " 103a7CFE 
101010  1") 

360  CALL  COLOR ( 14, 7, 1 ) 

370  FOR  C=l  TO  7 

3B0  READ  D CO , COL (C) ,S»<C) 


390  NEXT  C 

400  DATA  4,4,4,4,8,22,2,12, 

2,2, 15, 11,4, 19,31,4,24, 

W, 2,28, H 
410  REM 
420  PRINT  : : "PRESS  <ENTER> 

TO  START. " 
430  CALL  KEY<0,K,S) 
440  IF  K013  THEN  430 
450  REM   DRAW  NOTES 
460  CALL  CLEAR 
470  PRINT  "  y     CI    >    :\ 

480  PRINT~"  z    zz   z   zz 

Z  2       '      ~  " 

490  CALL  HCHAR(23, 20, 128) 
500  PRINT 

510  REM   DRAW  STAFF 
520  CALL  HCHAR (R,3, 97) 
530  CALL  HCHAR(R    ,3,98) 
540  CALL  HCHAR(R    ,3,99) 
550  CALL  HCHAR (R, 4, 100, 22) 
S60  CALL  HCHAR (R+l , 4, 101 , 22 

) 
570  CALL  HCHAR (R+2, 4, 101 , 22 

) 

CALL  HCHAR (R, 26, 102) 

CALL  HCHAR (R+1 , 26, 103) 

CALL  HCHAR (R+2, 26, 104) 

CALL  HCHAR  <R, S,  103) 

CALL  HCHAR(R+1 , 5, 106) 

CALL  HCHAR{R+2, 5, 107) 

REM   CHOOSE  NOTES 

COUNT=0 

CHECK=16 

PLACEsB 

RHY*=" " 

C=l 

CALL  HCHAR(23, CDL(C) , 13 

6) 

CALL  SOUND ( 100, 1400, 2) 

CALL  KEY(0,K,S) 

IF  <K<>13)  1  (K<  >S3)  *  tKO 

6a)THEN  720 

CALL  HCHAR(23, COL(C) , 32 

) 

IF  K<>a3  THEN  780 


SB0 
590 
600 
610 
620 
630 
640 
650 
660 
670 
6B0 
690 
700 

710 
720 
730 

740 

750 

760 
770 

780 
790 
800 
810 
820 
830 
840 
850 
B60 
870 
880 

890 

900 

910 
920 
930 
940 

950 

960 

970 
980 
990 
1000 

1010 
1020 
1030 

1040 


C  =  C-1 
IF  C> 
90 

IF  k:< 

C  =  C+1 

IF  C< 

C  =  7 

BOTD 

IF  D{ 

CALL 

CALL 

GOTO 

RHY*  = 

ON  C 

030,  1 

CALL 

CALL 

9) 

PLACE 

6QT0 

CALL 

CALL 

9) 

CALL 

1  ) 

CALL 

109) 

PLACE 

BOTO 

CALL 

CALL 

09) 

PLAC 

GOTO 

CALL 

) 

CALL 


=1  THEN 

>6B  THEN 

=7  THEN 

700 

C) <=CHEC 
SOUND ( 15 
SOUND ( 15 
700 

RHY«!iSS  ( 
GOTO  890 
090, 1 150 
HCHARiR, 
HCHAR (R+ 

=PLACE+3 
1220 

HCHAR (R, 
HCHAR (R+ 

HCHAR  <R, 

HCHAR(R+ 

=PLACE+3 
1220 

HCHAR(R, 
HCHAR (R 

E=PLACE+2 
1220 
HCHAR (R, PLACE,  113 

HCHAR (R+1 , PLACE,  1 


700  ELSE  6 

830 
700 


K  THEN  870 
0, 330, 2) 
0, 262, 2) 

C) 

,930,990,  1 
,  1  190 

PLACE, 108) 
1 , PLACE, 10 


PLACE, 110) 
1 , PLACE, 10 

PLACE+1, 1 1 

I , PLACE+1, 


PLACE, 112) 
+1 , PLACE, 1 


09) 
1050  CALL  HCHAR <R, PLACE+1 , 1 

14) 
1060  CALL  HCHAR(R+1 , PLACE+1 

,  109) 
1070  PLACE=PLACE+2 
1080  GOTO  1220 
1090  CALL  HCHARtR, PLACE, 1 10 

) 
1100  CALL  HCHAR (R+1 , PLACE, 1 

18) 
1110  CALL  HCHAR(R, PLACE+1, 1 

15) 
1120  CALL  HCHAR(R+1 , PLACE+1 

,  127) 
1130  PLAC£=PLACE+3 
1140  GOTO  1220 
1150  CALL  HCHAR (R*l , PLACE, 1 

19) 
1160  CALL  HCHAR(R+2, PLACE, 1 

20) 
1170  PLACE=PLACE+3 
11B0  GOTO  1220 
1190  CALL  HCHAR (R+1 .PLACE, 1 

16) 
1200  CALL  HCHAR(R+2, PLACE, 1 

17) 
1210  PLACE=PLACE+2 
1220  COUNT=C0UNT+D CO 
1230  CHECK=16-CQUNT 
1240  IF  CaUNT<16  THEN  700 
1250  REM   PLAY  RHYTHM 
1260  FOR  TIME=1  TO  8 
1270  L=LEN(RHY*) 
12B0  FOR  M=l  TO  L 
1290  A«=SEG» (RHY»,M, 1) 
1300  IF  (A*="W" ) + (A«="H" ) TH 

EN  1330 
1310  CALL  SOUND(T«VAL (A«) , - 

5,2,330, 4) 
1320  GOTO  1370 
1330  ReST=T 

1340  IF  At»="H"  THEN  1360 
1350  REST=RESTt2 
1360  CALL  SOUND (REST, 9999, 3 

0) 
1370  CALL  SOUND ( 1 ,9999,30) 
13S0  NEXT  M 
1390  NEXT  TIME 
1400  FOR  DEL=1  TO  500 
1410  NEXT  DEL 
1420  GOTO  460 
1430  END  © 


Attention  Programmers 

COMPUTE!  magazine  is  currently 
lool<ing  for  quality  articles  on 
Commodore,  Atari,  Apple, 
anc:i  IBM  computers  (inclucding 
the  Commocdore  Amiga  and 
Atari  ST),  If  you  have  an 
interesting  fiome  application, 
educational  program, 
programming  utility,  or  gome, 
submit  it  to  COMPUTE!,  P.O. 
Box  5406,  Greensboro,  NC 
27403,  Or  write  for  a  copy  of 
our  "Writer's  Guidelines." 


ApmiQSa     COMPUTEI      115 


IBM  Personal  Computing 


Donold  B.  Trivette 


Two  Checkers  And  A  Manager 


Anyone  who  spells  as  badly  as  I  do 
is  bound  to  love  spelling  check- 
ers— and  here  are  two  new  prod- 
ucts that  are  getting  a  lot  of 
attention. 

Borland,  the  folks  who  brought 
you  Turbo  Pascal  and  the  popular 
SideKick,  have  come  up  with  another 
product  headed  for  the  best-seller's 
shelf.  Turbo  Lightning  is  a  memory- 
resident  spelling  checker — it  moni- 
tors every  word  you  type  and 
instantly  beeps  when  you've  made 
a  mistake.  Then,  by  pressing  a  key, 
you  can  call  forth  (in  a  box  superim- 
posed over  your  text)  a  list  of  the 
most  likely  correct  words.  It  uses 
the  83,000-word  Random  House 
dictionary  as  its  spelling  authority. 
Lightning  also  has  a  thesaurus  op- 
tion which  lets  you  select  just  the 
right  word  from  a  50,000-word 
Random  House  thesaurus.  All  of 
this  from  within  any  program — 
word  processor,  spreadsheet,  data 
management,  or  communica- 
tions— just  by  pressing  a  few  keys. 

Here's  how  it  works.  Lightning 
stores  a  small  dictionary  in  RAM. 
When  installing  the  program,  you 
must  select  one  of  three  sizes:  6,000 
words,  12,000  words,  or  16,000 
words.  The  larger  the  dictionary, 
the  larger  Lightning's  vocabulary, 
and  the  less  often  it  beeps  for  a 
word  that  is  really  correct.  The 
trade-off,  as  always,  is  memory.  As 
you  type  a  word.  Lightning  consults 
the  in-memory  dictionary  and 
beeps  if  there  is  no  match.  At  this 
point,  you  may  press  the  Alt-F9 
keys  to  make  the  program  consult 
the  larger  disk-based  dictionary. 
Lightning  then  either  confirms  your 
spelling  as  correct  or  lists  possible 
choices  based  on  sound-alike  words. 

Two  different  disk-based  dic- 
tionaries are  available:  one  for  hard 
disk  systems  and  a  smaller  one  for 
floppy  disk  computers.  Since  most 
of  us  have  a  small  working  vocabu- 
lary, the  scheme  of  a  RAM  dictio- 


nary supplemented  by  one  on  disk 
is  quite  workable. 

A  Flexible  Engine 

If  you're  thinking  that  a  poor  spell- 
er would  be  beeped  to  distraction, 
you  are  right,  Fortunately,  Lightning 
allows  the  auto-proof  mode  to  be 
turned  off;  checking  may  then  be 
requested  on  individual  words  or  a 
screen  at  a  time. 

Borland  plans  to  issue  addi- 
tional dictionaries  and  databases 
for  use  with  the  Lightning  engine.  In 
fact,  any  text-type  data — even  your 
own  files — could  be  indexed  and 
made  accessible.  Turbo  Lightning  is  a 
sophisticated  program  with  more 
potential  than  just  a  spelling  check- 
er, {Turbo  Lightning,  $99.95,  Borland 
International,  4585  Scotts  Valley 
Drive,  Scotts  Valley,  CA  95066.) 

The  second  new  spelling- 
checker  is  Reference  Set  from  Refer- 
ence Software.  It  too  uses  the 
Random  House  dictionary  and  the- 
saurus (what  happened  to  Web- 
ster's?). Reference  Set  doesn't  check 
each  word  as  you  type,  but  rather 
waits  for  you  to  request  a  spelling 
check  by  pressing  Alt-D  for  dictio- 
nary or  Alt-T  for  thesaurus.  A  win- 
dow pops  up  over  your  text 
showing  possible  correct  spellings 
(or  alternate  words);  pressing  a  key 
deletes  the  old  word  and  inserts  the 
new  one. 

Although  the  dictionary  is  ref- 
erenced from  disk,  the  program 
maintains  an  index  in  memory  so 
the  time  to  locate  a  word,  even  with 
floppy  disk,  is  typically  less  than  a 
second.  Reference  Set  includes  two 
different  sized  dictionaries  and  the- 
sauri for  floppy  and  hard  disk  sys- 
tems. The  modest  Reference  Set 
engine — the  memory-resident  pro- 
gram that  accomplishes  the  look- 
up— uses  about  20K;  by 
comparison.  Lightning  uses  about 
83K.  {Reference  Set  Version  1, 
$89,95,  Reference  Software,  2363 


Boulevard  Circle,  Walnut  Creek, 
CA  94595.)  Both  programs  work 
best  with  a  hard  disk,  but  either 
may  be  used  with  a  two-drive  flop- 
py system. 

Automatic  Stock  Quotes 

The  "Manager"  referred  to  in  the 
title  of  this  column  alludes  to  a  new 
program  that  works  with  the  popu- 
lar Andrezv  Tobias'  Managing  Your 
Money  (see  "IBM  Personal  Comput- 
ing," December  1985).  Called  Msh- 
aging  the  Market,  it's  a 
communications  program  that  dials 
the  Dow  Jones  News/Retrieval  ser- 
vice, collects  quotations,  and  up- 
dates the  prices  for  the  securities  in 
an  MYM  portfolio.  Pushing  three  or 
four  keys  dials  the  number,  enters 
the  password,  selects  the  service, 
requests  the  quotes,  updates  the 
files,  and  disconnects.  One  nifty 
feature  allows  quotes  to  be  ordered 
either  by  the  percent  change  or  by 
the  absolute  change — a  real  time- 
saver  for  those  who  monitor  a  lot  of 
stocks.  Output  can  be  printed  or 
saved  for  later  analysis  in  a  file 
readable  by  Lotus  1-2-3. 

If  you  think  this  program 
would  be  too  expensive  to  use  with 
a  modest  portfolio,  you  may  be 
pleasantly  surprised.  I've  been  up- 
dating about  a  dozen  stocks,  five 
days  a  week,  after  6  p.m.  when  the 
rates  are  lowest,  and  the  bill  from 
Dow  Jones  is  less  than  $10  a  month. 
Managing  the  Market  comes  with  a 
temporary  password  and  one  hour 
of  free  time  with  Dow  Jones,  so  you 
can  begin  using  it  right  away.  Of 
course,  you  must  have  a  modem; 
the  program  supports  all  Hayes  and 
Hayes-compatible  modems  as  well 
as  a  dozen  or  so  other  makes.  {Man- 
aging  the  Market,  $79.95,  MECA,  12 
Saugatuck  Ave.,  Westport,  CN, 
06880.)  © 


116    COMPUTil     April  1986 


INSIGHT:  Atari 


Bill  Wilkinson 


Binary  Files,  Unite! 


I've  had  several  people  Vi^rite  me 
that  various  programs  designed  for 
use  with  binary  (machine  language) 
files  don't  work  with  Atari's  Macro 
Assembler  {AMAQ,  OSS's  MAC/65, 
or  a  couple  of  other  assemblers.  Or 
possibly  a  program  will  work  with  a 
small  binary  file  produced  by  these 
assemblers,  but  not  with  a  larger 
one.  Why  all  these  problems  when 
the  simple  Atari  Assembler/Editor 
cartridge  works  so  well? 

The  root  of  the  problem  is  the 
Atari  Disk  Operating  System  defi- 
nition of  a  binary  file,  so  let's  exam- 
ine that  first.  (Besides,  maybe  we'll 
learn  a  few  extra  goodies  on  the 
way.)  A  legal  Atari  binary  file  has 
the  following  format: 

1.  A  header  of  two  bytes,  each  with 
a  value  of  255  (hex  $FF). 

2.  Two  more  bytes  indicating  the 
starting  address  of  a  segment  of  the 
binary  file.  The  two  bytes  are  in 
standard  6502  low-byte/high-byte 
order, 

3.  Two  more  bytes  indicating  the 
ending  address  of  that  same  file 
segment. 

4.  A  sequence  of  bytes  which  con- 
stitute the  actual  binary  code  to  be 
loaded  into  memory  for  the  seg- 
ment defined  by  the  preceding  four 
bytes.  The  number  of  bytes  may  be 
determined  by  subtracting  the  start- 
ing address  from  the  ending  ad- 
dress and  then"  adding  one. 

5.  If  there  are  no  further  segments, 
there  should  be  no  more  bytes  in 
the  file. 

6.  If  there  are  more  segments,  then 
repeat  this  sequence  of  steps  start- 
ing at  either  step  1  or  step  2. 

And  that's  it.  A  really  neat, 
clean,  format.  Watch  out  for  that 
last  step,  though.  First,  it  says  that 
the  number  of  segments  is  theored- 
cally  unlimited.  Second,  it  says  that 
header  bytes  (dual  hex  $FF  bytes) 
mat/  occur  at  the  start  of  any  seg- 
ment. It  also  implies  that  there  is  no 


particular  order  necessary  to  a  bina- 
ry file;  it's  perfectly  OK  to  load  the 
segment(s)  at  higher  memory  ad- 
dresses before  the  one(s)  at  lower 
addresses. 

RUN  And  INIT  Vectors 

Before  moving  on,  there  are  two 
other  niceties  about  DOS  binary 
files  worth  knowing.  When  DOS 
loads  a  binary  file  (including  an 
AUTORUN.SYS  file  at  powerup),  it 
monitors  two  locations.  The  sim- 
pler of  the  two  is  the  RUN  vector. 
Before  DOS  begins  loading  the  bi- 
nary file,  it  puts  a  known  value  into 
the  two  bytes  at  locations  736-737 
(hex  $2E0-$2E1).  When  the  file  is 
completely  loaded  (i.e.,  when  DOS 
encounters  the  end  of  the  file,  step 
5  above),  if  the  contents  of  location 
736  have  been  changed,  then  DOS 
assumes  the  new  contents  specify 
the  address  of  the  beginning  of  the 
program  just  loaded.  DOS  then 
calls  the  program  (via  a  JSR)  at  that 
address. 

The  second  monitored  location 
is  the  INIT  vector  at  address  738 
(hex  $2E2).  This  vector  works  much 
the  same  as  the  RUN  vector,  but 
DOS  initializes  and  checks  it  for 
each  segment  as  the  segments  are 
loaded.  If  the  INIT  vector's  contents 
are  altered,  then  DOS  assumes  the 
user  program  wants  to  stop  the 
loading  process  for  a  moment,  long 
enough  to  call  a  subroutine.  So 
DOS  calls  (via  a  JSR)  at  the  request- 
ed address,  expecting  that  the  sub- 
routine will  return  so  the  loading 
process  can  continue.  This  is  a  very 
handy  feature.  Most  of  you  have 
probably  seen  it  at  work,  such  as 
when  you  run  (or  boot)  a  program 
which  puts  up  an  introductory 
screen  (maybe  just  a  title  and  a 
PLEASE  WAIT  message)  and  then 
continues  to  load. 

The  other  important  difference 
between  the  RUN  and  INIT  vectors 
is  that  DOS  leaves  channel  number 
one  open  while  the  INIT  routine  is 


called.  (DOS  always  opens  and 
loads  the  binary  file  via  this  chan- 
nel.) I  suppose  a  really  tricky  pro- 
gram could  close  channel  one,  open 
up  a  different  binary  file,  and  then 
return  to  DOS.  DOS  would  proceed 
to  load  the  new  file  as  if  it  were 
continuing  the  load  of  the  original 
one.  Most  of  the  time,  though,  INIT 
routines  should  not  touch  channel 
one. 

More  On  Segmented  Files 

Back  to  the  main  subject:  Why  do 
some  programs  have  problems  vrith 
binary  files  produced  by  some  as- 
semblers? Well,  if  all  programs  fol- 
lowed the  complete  binary  file 
format  as  given  by  steps  1  through 
6  above,  there  would  probably  be 
no  incompatibilities.  Unfortunate- 
ly, many  people  who  have  used  no 
assembler  except  the  old  cartridge 
have  ignored  segmented  files.  They 
have  assumed  that  a  binary  file 
consists  of  steps  1  through  4,  one 
time  only,  with  a  single  large  seg- 
ment. Perhaps  this  is  because  many 
programmers  first  worked  with  Ap- 
ple DOS,  CP/M,  and  other  operat- 
ing systems  with  not-so-intelligent 
binary  file  formats.  Or  perhaps  it  is 
because  the  supposedly  simple  as- 
sembler cartridge  is,  in  some  ways, 
smarter  than  more  advanced  as- 
semblers. In  particular,  the  assem- 
bler cartridge  will  not  produce 
multiple  segments  unless  the  pro- 
grammer specifically  asks  for  them 
(via  an  *=  directive  to  force  a 
change  to  the  location  counter). 

Yet  other  assemblers  (includ- 
ing AhAAC  and  MAC/ 65)  never  pro- 
duce a  segment  longer  than  a 
particular  size  (usually  a  page — 256 
bytes — or  less).  If  the  programmer 
coded  a  longer  segment,  these  as- 
semblers automatically  break  it  up 
into  smaller  pieces.  Why?  Probably 
to  gain  speed  and  lessen  the  work 
of  assembly,  since  the  assembler 
cartridge  is  doing  a  lot  of  work 
remembering  the  ending  addresses 


April  1986     COMPUTEI      117 


of  segments. 

Now,  if  my  only  concern  were 
those  few  programs  which  don't 
properly  load  all  binary  files,  I 
would  simply  have  showed  their 
authors  the  way  to  fix  them.  But 
there  is  a  secondary  advantage  to 
programs  which  consist  of  larger 
segments:  They  load  faster!  Some- 
times much  faster.  So  this  month  I 
give  you  the  BASIC  program  be- 
low, which  takes  any  binary  file 
and  attempts  to  "unify"  it.  In  par- 
ticular, if  the  start  address  of  one 
segment  directly  follows  the  end 
address  of  the  preceding  segment, 
they  are  consolidated  into  a  single 
segment.  And  so  on,  so  far  as  the 
space  in  BUF$  allows. 

And,  last  but  not  least,  there's 
another  minor  bonus.  Often,  some- 
one who  writes  an  assembly  lan- 
guage program  purposely  leaves 
space  to  be  filled  in  later  (e.g.,  by  a 
filename,  counter,  etc.).  If  this  re- 
served space  occurs  in  the  midst  of 
code  {probably  not  good  practice, 
but  it  happens),  it  forces  even  the 
assembler  cartridge  to  break  the  file 
into  segments.  But  if  the  reserved 
space  is  significantly  less  than  a 
sector  (say  under  50  bytes  or  so),  it 
may  be  faster  to  let  DOS  load  filler 
bytes.  So  you  can  change  the  value 
of  the  variable  FILL  in  line  1160  (to 
40,  perhaps),  and  this  program  will 
automatically  generate  up  to  the 
specified  number  of  fill  bytes  in  an 
effort  to  better  unify  the  file. 

Whew!  Was  this  month's  topic 
too  heavy  for  you?  Then  write  me 
(P.O.  Box  710352,  San  Jose,  CA 
95071-0352)  with  your  suggestions 


for  a  topic.  No  treatises  please.  One 
or  two  pages  works  best.  Thanks. 

Binary  File  Unifier 

For  instructions  on  entering  this  listing,  pleas© 
refer  to  "COt\/IPUTEI's  Guide  to  Typing  In 
Programs"  in  this  issue  of  COmputei. 


6E  1110 

U  1120 

DI  1  130 

W.  1140 

i;  1 150 
m  1200 

CJ  1210 
U  1220 
NO  1230 


Eft  1240 


EE  1250 


FS  1260 

A*  1270 

IE  1280 

OB  1290 

DI  1300 

KJ  1400 

JC  1410 

a  1420 

FJ  1430 

JD  1440 

KD  1450 

PI  1460 


XB  1470 

Df  1480 

LC  1490 

EH  1500 

I1F  1510 


1600 
1610 


1620 
1630 


REM 

REM 

BUFS 

DIM 

DIM 

ENEW 

REM 

REM 

REM 

PRIN 

1  e  n 

g" 

PRIN 
and 

h  " 

PRIN 

e 

ode  . 

PRIN 

PRIN 

?  ■'; 

INPU 

PRIN 
f  i  1 

INPU 

REM 

REM 

date 

REM 

OPEtX 

BET 

,  SEG 

IPS 

GHIG 

PRIN 

n  g  f 

mat  " 

END 

REM 

REM 

OPEN 

PUT 

,  SEG 

REM 

REM 

i  g  i  n 

REM 

BUFF 


allocate  buffer 

IZE-FRE (0) -300 
BUF« (BUFSIZE) 
FILEDLD« (40) , FIL 
*  (40) 

get  file  name 

T  "  I  need  tuo  f i 
ames:  An  existin 

T  "   object  file 
a  new  file  whic 

T  "   will  get  tti 
n  i  f  i  ed '  object  c 


T  "Ex  i  st  i-ng  file 

T  It  16,  FILEDLD* 
T  "CS  SPACEBJNew 
e?  ■■; 
T  «16,FILENEWt 

open  f  i 1 es ,  val i 
existing  one 

#1,4,0, FILEOLDt 
#1 , BEGLDW: GET  ft  1 
HIGH 

EGL0W=255  AND  SE 
H=255  THEN  1500 
T  :PRINT  "Existi 
lie:  Invalid  for 


i  nput  file  okay 

#2, a, 0, FILENEW* 
#2, SEGLOW: PUT  «2 
HIGH 

process  a  new  or 


TR  =  0 


00  1640 

eUF*-CHR*{0> :BUF*(BU 

FSIZE) =CHR« (0) 

KE  1650 

BUF* (2)=BUF«:REM  zap 

buffer 

KL  1660 

PUT  #2,SEeL0W:PUT  #2 

, SEGHIGH 

m   1700 

REM 

ftfl  1710 

REM  process  a  segmen 

t 

REM 

KO  1720 

IF  1730 

SET  #1 , ENDLOW: GET  #1 

,ENDHIGH 

AH  1740 

SEGSTART=SEGLQW+256« 

SEGHIGH: SEGEND=ENDLa 

W+256tENDHIGH 

HE  1750 

SEGLEN=SEeEND-SEGSTfl 

RT+1 

HF  1760 

REM  read  segment  int 

o  buffer 

HL  1770 

FOR  PTR=1  TO  SEGLEN 

KH  17B0 

GET  #1 , BYTE: BUF«(BUF 

PTR+PTR)=CHR«tBYTE) 

(IE  1790 

NEXT  PTR 

r.H   1800 

REM 

flf  1  B  1  0 

REM  check  head  of  ne 

xt  ssgment 

KP  18  20 

REM 

J6  1830 

GET  »1,SEGL0W:GET  «1 

.SEGHIGH 

K   1840 

IF  SE0L0W=25S  AND  SE 

GHIGH  =  255  THEN  GET  *t 

1,SEGL0W:GET  tfl.SEGH 

IGH 

OL  1850 

SEGNEXT=SEGL0W+256*S 

EGHIGH 

EB  1860 

GfiP=SEGNEXT-SEGEND-l 

HC  1870 

IF  GflP>FILL  QR  GAP<0 

THEN  2000 

U   18B0 

BUFPTR=BUFPTR+SEGLEN 

+  GAP 

ED  1S90 

IF  BUFPTR+256>BUFSIZ 

E  THEN  2000 

BL  1900 

GOTO  1700 

);6  2000 

REM 

IJ  20  10 

REM  need  to  dump  buf 

ier     to 

-fi  2020 

REM  prepare  for  new 

origin 

H  2030 

REM 

LE  2040 

PUT  #2, ENDLGW:PUT  «2 

, ENDHIBH 

OS  2050 

FDR  PTR=I  TO  LEN(BUF 

«) 

U  2060 

PUT  #2, ASC <BUF» (PTR) 

PC  2070 

NEXT  PTR               ® 

Write  computer  programs  at  home.. 

BE  SUCCESSFUL  WITH 

COMPUTERS 

Setf-paced.  one-on-one  instruction 


Unique  SluOy  program 
mcludes  word-processing. 
boDhkteping,  data  base 
mandgemefif.  mailing  lisis. 
invenlories.  and  all  about 
personal  compuiers 


No  eipirienct  nxdsdl 
Leirn  even  belore  you 
detide  in  9  comiiiitir. 

Prctesiianil.  hone  aitd 
busigast  ifpliciliiins. 


r     HALIX  iNSTlTUTE 

CENTER  FOB  COMPUTER  EDUCATION  DEPT     6 1  A 

1543  W  OLyMPIC.  *226 

IDS  ANGELES.  CA  90015-3SW 

lESf     Ssnd  me  free  ml&fma^on  on  flow  I  can  learn  atoul 

compuiers  a^d  programming  at  home' 


Address - 


j Cily_________Stale/Zip- 


PREMIUM  QUALITYI      LFFETIME  WARRANTY! 

DISK  SALE! 


m 


W.  by. 


Bin 


lou'u  racainiK  Ih-iTi  ti  Mmtm^  Ihi  NICHC&T 
QUAUTY  PREMtlFM  DISKS  MADE!  C*f1l'fl«d. 
aa*tM%»»4  ]aO^  *r>6<  haa.  MOnCC  ttkCA 
SATISFACTION  Cu*iHHTEU  gill 


SS  fl3  3:l' 


,f  !:;!;:! 


[lOalSK|j_U^Eil;lllH 

lj;*_!i;cJ«[rScJli(J^3t 


JS.Pqfcf  iSMPt  a  ccTiititlii  »UD^  S'r  !  Kc  Sic ,  SEc  M: 


BS.[?ij;3l]EHSiTT|SSi3,ML-IH 


QS/KQ   >1l  DENSITY   rr  iBMAr  itll^T 


]  ;"  double  11 


f  04  USE  S2c  E9: 

jirh'iD'iice'jM 
i-M  i.ftJtVfir^JSij 


ID  ;iOC,5C(f:  in    _£K  . 


ng  I  t'  TD6  1D?,«: 
159il9E  I.Utl.E 


?SS  7ti;Z40730  ?ftQ;f025&|;<S 


INCREDIBLE  PRICES  ON  COMPUTER  ACCESSORIES! 

UNlFlLE-lDO  hdlds  100  disks,  with  [chck  &  \vi,  removcible  lop.  il3.3i 
UftlflLE-70  HoliJi  70  iJijks.  IFke  'Fllp^fl-lile.-  snLE70  HM 
UhltMllQ  IIBRARY  CAS£&,  holds  10  ditii,  dcir  plHtk.  r^LIia  39t 
UMPAK  S',-  DISK  MWLEHS,  lipd  <jrfbe*fd.  «g  i»  3  HiVt  sUMPlK  10  fof  55 
LETTER  gUAL  COMPUTER  PAPEB.  2500  ifcMtiJQs  mio^oturi  a  =ill"  pLQP  %79 
DHAFT  QUAL  COMPUTER  PAfEH,  3300  tfiwti.l  5a  itd-ptirl  B  j.U"  =WJP  JM 


HOW  rO  ORDER:  Pjy  by  MC-VJii<Am*i-COD.  ar  «ind  eti,ti<  -llti  <^6*r, 
minlrnum  ordsi  130,  Jdd  (J  lidi'  ihip|>l/l<  jCtS  Ifti  (hlppJrE  raliB  on  papvr]. 

We  cjji  tM(i  A<ii«n  ictajri  la  ii.chr>iiii  wiih  bdimI  cudil,  n^Nmiim  {Hiichai.« 
ardvr  f  loa,  tOB  UniKttK  kH  orbni  rmitl  kic<ude  dtiftlmB  pHivi*  and 
^TREFT  aildrvtt^  Mnnei-buch  30  iiy  »atkil*<tlor  lujf  artH.  S*nd  lar 
FUEE  CATI^IOC  khtkif  IDO'i  of  d*ccunt  cioinpiriH  wppllMJ 


r^^^  (800)34  J-0472 


UNITECH 


IN  MAi5:(6lT|'UNI-TECH-' 

30  J  HUFtLtrST. 

CAMBHtPCE.M^  02141 


ATTENTION  T.I.  99/4A  OWNERS 

•  Diskettes  -  590;  eacti!  Your  choice  SS  or 
DD 

•  51 2K  Now  Available  for  the  99/4A! 

•  99/8  Level  4  Computer  Upgrade  Now 
Available 

•  Over  1500  Hardware  and  Software 
Accessories  at  Similar  Savings 

THE  WORLD'S  LARGEST 
COMPUTER  ASSISTANCE  GROUP 

Now  serving  over  35,000  members  worldwidB 
with  the  bast  in  lechnicat  assistance,  service, 
and  pfoilucts  tor  the  Texas  Instrument  99/4A 
Compular. 

To  become  a  member  and  receri's  newsletters, 
catalog,  technical  assistance  and  membership 
package,  send  $10.00  lor  a  ONE  "Tear  Member- 
ship ro.' 

99/4A  National  Assistance  Group 

National  Headquarters 

P.O.  Box  290812 

Ft.  Lauderdale,  Florida  33329 

Attention  Mennbership  Division 

For  Further  Information  Call  24  Hours 

(305)  583-0467 


News  &  Products 


Interactive  Science 
Fiction  Game  For 
Commodore,  Apple 

PSI'5  Trading  Company,  from  Accolade 
Software,  is  a  science  fiction  "mini- 
drama,"  whose  plot  and  outcome  are 
contingent  on  the  player's  relationship 
with  the  story's  characters.  The  game 
features  detailed  graphic  depictions  of 
30  different  characters  who  interact 
with  the  player  through  conversational 
text. 

The  story  revolves  around  the  PSI- 
5  Trading  Company,  a  space  freighter 
setting  off  on  a  mission  to  save  the 
inhabitants  of  the  Parvin  Frontier  from 
alien  invaders.  As  captain  of  the  ship, 
you  must  choose  a  crew  of  5  from  30 
applicants,  each  possessing  special 
skills  and  a  unique  personality.  The 
success  of  the  mission  hinges  on  the 
confidence  you  have  in  your  crew  to 
handle  its  responsibilities. 

Suggested  retail  price  for  the  Com- 
modore 64  version  is  $29.95.  The  Apple 
version  retails  for  $34.95. 

Accolade  Software,   20863  Stevens 
Creek  Blvd.,  Cupertino,  CA  95014. 
Circle  Reader  Service  Number  212. 


Epyx  Games  Available  For 
Amiga  And  Atari  ST 

Epyx  has  announced  that  two  of  its 
most  popular  computer  games,  and  a 
microcomputer  version  of  a  classic 
mainframe  adventure  game,  will  be 
available  for  the  Amiga  and  Atari  ST 
this  spring.  In  Winter  Games,  up  to  eight 
people  can  compete  in  seven  events 
from  the  Winter  Olympics.  The  original 
Commodore  version  of  the  game  fea- 
tured excellent  graphics  and  sound. 
Rogue  was  originally  a  mainframe  com- 
puter adventure  game  often  played  on 
college  campuses.  And  the  Temple  of 
Apshai  Trilogy  offers  a  wide  range  of 
multiple  dungeon  levels,  featuring 
1400  separate  chambers,  plus  enhanced 
high-resolution  graphics. 

Both  versions  of  all  three  games  are 
expected  to  retail  for  between  $19-$39. 

Epyx,  Inc.,  1043  Kiel  Ct.,  Sunnyvale, 
CA  94089. 
Circle  Reader  Service  Number  213, 


Bantam  Software  Promotions 

Bantam  Electronic  Publishing  is  offer- 
ing software  promotional  deals  for  pur- 
chasers of  Sherlock  Holmes  In  "Another 
Bow,"  The  Fourth  Protocol,  and  The 
Complete  Scarsdale  Medical  Diet. 
Through  April  15,  special  rebate  cou- 
pons can  be  used  to  take  $5  off  the  price 
of  each  of  those  programs.  And, 
through  March  31,  Bantam  will  take 
entries  in  its  Mystery  Weekend  contest, 
the  winner  of  which  will  get  a  weekend 
for  two  in  Boston  to  participate  in  a 
"mystery  weekend"  at  the  famous 
Parker  House  hotel.  Special  Holmes 
mystery  pamphlets  are  available  in 
many  participating  software  stores.  The 
pamphlets  contain  a  mystery  which 
you  solve,  and  then  submit  to  Bantam 
for  a  drawing  in  mid-April. 
Bantam  Electronic  Publishing,  Bantam 
Books,  666  Fifth  Ave.,  New  York,  NY 
10103. 
Circle  Reader  Service  Number  214. 


Sports  Tutorials  Designed  By 
The  Pros 

Avant-Garde  has  enlisted  the  help  of 
three  famous  professional  athletes  in 
developing  a  line  of  sports  tutorials.  Joe 
Theismann's  Pro  Football  offers  advice 
on  training  and  strategy  to  help  develop 
quarterbacking  techniques;  improves 
overall  football  skills;  and  helps  you 
understand  the  finer  points  of  the 
game.  Plays  are  illustrated  through 
live-action  diagrams.  Dave  Winfield's 
Batter  Up!  advises  on  pitchers,  batting 
stance,  swing  height,  grip  and  hitting 
strategy  to  help  you  develop  expert  bat- 
ting techniques.  The  package  also  in- 
cludes Winfield's  book.  Batter  Up!  The 
Act  of  Hitting,  and  a  four-player  batting 
game,  SlugfestL  Chris  Evert-Lloyd  Tennis 
provides  animated  demonstrations  of 
grip,  stroke,  game  strategy,  and  special- 
ized exercises.  The  program  helps  you 
learn  the  rules  and  choose  the  best 
equipment,  and  teaches  concentration 
techniques  to  prepare  you  mentally  for 
a  match. 

The  Commodore  64  version  of 
each  program  retails  for  $34.95.  The 
Apple  II  version  (64K  RAM  minimum) 
and  IBM-PC/PCjr  version  (128K  RAM 


minimum)  retail  for  $39.95. 

Avanl-Garde,   37B   Commercial 
Blvd.,  Novalo,  CA  94947. 
Circle  Reader  Service  Number  215. 


Infocom  At  Ttie  Big  Top 

In  Ballyhoo,  Infocom's  new  interactive 
mystery,  you  are  a  small -town  circus- 
goer  who  sticks  around  after  the  show 
to  explore  the  exotic  back  lot.  What  you 
discover  is  a  mysterious  underworld  of 
crime  and  corruption,  into  which  the 
circus  owner's  daughter  has  been  kid- 
napped. In  order  to  find  her,  you  must 
solve  a  series  of  puzzles  that  are  hidden 
among  the  circus  folk. 

Ballyhoo,  one  of  Infocom's  standard- 
level,  all-text  adventure  games,  is  avail- 
able for  the  Apple  11-series  and  Macin- 
tosh; Atari  XL/XE  and  ST  series. 
Commodore  64/128  and  Amiga,  and 
the  IBM  PC  and  PCjr,  for  a  list  price  of 
$39,95, 

Infocom,  Inc.,  125  Cambridge  Park 
Dr.,  Cambridge,  MA  02140. 
Circle  Reader  Service  Number  216. 


New  From  Better  Working 

Word  Processor  with  Spellchecker  is  the 
third  product  to  be  released  in  Spinna- 
ker's Better  Working  line  of  home  pro- 
ductivity software.  The  program  is  a 
full-function  word  processor,  with  a 
50,000-word  American  Heritage  Dic- 
tionary to  catch  spelling  mistakes.  It 
also  features  a  750-word  personalized 
user  dictionary,  preview  mode,  micro- 
commands  for  alternative  print  styles, 
and  window-based  menus  and  help 
screens. 

The  other  titles  in  the  Better  Work- 
ing series  are  Spreadsheet  and  File  and 
Report.  Word  Processor  with  Spellchecker 
can  perform  mailmerge  with  Better 
Working  File  and  Report.  Each  program  is 
available  for  the  Apple  11  series  ($59.95) 
and  the  Commodore  64/128  ($49.95). 

Better  Working,  Spinnaker,  One  Ken- 
dall Square,  Cambridge,  MA  02139. 
Circle  Reader  Service  Number  217. 


April  1966     COMPUTEl 


119 


Classified 


SOFTWARE 


TI-99/4A  Softu-are/Hiirdware  bargains. 
Hard-to-find  items.  Huge  selection. 
Fast  service.  Free  catalog.  D.E.C., 
Box  690,  HicksviUe,  NY  11801 

LOTTO  PICKER.  Improve  vour  chances  for  those 
Million  Dollar  Jackpots!  Picks  LOTTO.  VViN-4,  & 
Daily  Numbers.  All  USA  &  Can.  games  incl. 
Expandable!  IBM/C64/T199  $29.95.  Order  Now! 
1-800-341-1950  Ext.  77.  Mail  Orders;  Ridge,  170 
Broadway,  <t201-C,  NYC,  NY  10038.  Catalog. 

PROJECT  PLANNING/MANAGEMENT  using 
the  C64,  SX,  or  C128.  Data  sheet  for  SASE  - 
Prgm  for  5106.95  (CA  res.  add  6%  sis  tx). 
LAWCO,  Dept.  C.  Box  2009,  Manteca,  CA  95336 

Genealogy  Program  for  the  C64.  "FAMILY 
TREE"  will  produce  Pedigree  Charts,  Family 
Group  Records,  Individual  Files,  Indexes,  Searches 
of  Ancestors-  LDS  version  available.  "The  Best" 
genealogy  program  for  the  64.  S49.95, 
GENEALOGY  SOFTWARE,  FOB  1151,  PORT 
HURON.  MI  48061,  (519)  344-3990. 

Animal  Records  maintained  with  "PETIGREE" 
for  the  C64.  Produces  Litter,  Awards,  Breeding 
Show,  Individual  Records,  Pedigree  Charts. 
S69.95.  GENEALOGY  SOFTWARE,  FOB  1151, 
PORT  HURON,  MI  48061,  (519)  344-3990. 

FREE  SOFTWARE  CATALOG! 

Call  Toll-Free  1-800-5541 162,  Tevex,  Inc. 
Save  'A  off  retail  prices.  We  carry  SSI, 
Elect,  Arts,  Infocom,  and  many  more! 

COMMODORE:  TRY  BEFORE  YOU  BUY  Top  25 
best-selling  games,  utilities,  new  releases,  Visa, 
MasterCard.  Free  brochure.  Rent-A-Disk.  908  9th 
.'\ve..  Huntington,  WV  25701  (304)  522-1665 

DISCOUNT  SOFTWARE:  Amiga/Apple/ 
Atari/C64-128/1BM  PC-PCjr/TRS-80/Timex/ 
Sinclair.  Free  Catalog:  WMJ  DATA  SYSTEMS, 
4  Buitertly  Dr.,  Hauppauge,  NY  11788 

3  GAMES-PHOBOS-Destroy  a  falling  moon. 
10101  -  Plav  21  against  vour  computer. 
STALACTITE  ATTACK-fry  to  5Ur\'ive  in  a 
cave  with  attacking  stalactites-requires  joystick. 
ALL  THREE  for  32K  ATARI,  ON  DISK.  S3  check 
or  M.O.  to:  M.  A.  Grossman,  VV205  N6844 
Woodivard  Ct.,  Menomonee  Falls,  Wl  53051 

Dr.  T's  .MUSIC  SOFTWARE 
A  music  composition  system  with  true 
word  processing  capabilities  for  APPLE  and 
COMMODORE  computers.  Also  algorithmic 
composition  programs  for  computer 
generation  of  sequences.  Fully  editable 
Bach,  Keyboard,  Bass  and  Drum  disks. 
Patch  librarians  a\'ailable  for  Yamaha  and 
Casio  synthesizers.  Reviewed  in  Jan  '85 
COMPUTE!  (617)  244-6954,  Dr.  T's,  Dept.  C, 
66  LOUISE  RD„  CHESTNUT  HILL,  MA  02167 

DATA  BASE  130  FOR  THE  ATARI  130  XE 

Data  files  up  to  64K,  Sort  on  any  field. 
Print  address  labels  or  listings.  $25. 
Bill  Von  Sennet,  P.O.  Box  14585, 
Pittsburgh.  PA  15234.  Specify  810  or  1050. 

IBM  PCjr  OWNERS:  We  have  the  software  you 
want.  We  also  have  complete  2nd  drive  additions 
or  kits.  FREE  CATALOG.  OOWL  SOFTWARE, 
1435  Bumiey  Sq.  N.,  Columbus,  OH  43229 

120     COMPUTEI      April  1986 


FREE  SOFTWARE  for  C64,  C128,  IBM  &  CPM. 
For  info  send  large  stamped  (39c)  return 
envelope  to:  PUBLIC  DOMAIN  USERS  GROUP, 
PO  Box  144 2- Al,  Orange  Park,  FL  32067 

TI-99/4A  QUALITY  SOFTWARE  for  Business, 
Home  and  Entertainment  *  *  BONUS  Software 
Offer!  •  •  Send  for  FREE  catalog  to  MICRO  -  BIZ 
HAWAII,  BO,X  1108,  Pearl  City,  HI  96782 

TAX  SPREADSHEET  FOR  C64,  ATARI,  Tl: 
$19.95.  +  S2  s/h.  Includes  1040,  2106,  2441, 
A,B,C,D,E,G,SE,W,1040A.  Yearly  updates  SIO. 
T1-99/4A  w/ExtBasic,  Atari  w/4aK  or  more. 
Specih'  disk  or  tape.  Steve  Karasek,  855  Diversey, 
St.  Louis,  MO  63126  (314)  961-2052 

ATTENTION  TI99/4A  OWNERS  III 
See  our  ad  in  Product  Mart. 
The  99/4A  National  Assistance  Group 
(305)  583-0467 

"  ATARI  USERS  "  GUEST  FOR  LIFEII 
Realistic  Adventure  with  weapons,  killers  and 
traps.  $14.95  tape/disk.  FREE  CATALOG. 
Octavlan  Software,  Box  174,  Republic,  OH  44867 

GAMES  FOR  C-641...ANY  CHOICE  $19.95  T/D. 
Navy  War,  Startrek,  Football,  Risk.  Free  game 
w/each  buy.  RK  Games,  420  W.  Central, 
Medicine  Lodge,  KS  67104.  (316)  886-5097 


MISCELLANEOUS 


HELP  IS  ON  THE  WAYI 

Just  call  1-800-334-0868  to  get  your  free 
copy  of  the  latest  COMPUTE!  Books  Catalog! 
If  voir  need  help  in  getting  information  on 
alfof  the  latest  COMPUTE!  book  titles 
available  plus  all  COMPUTE!  backlist  titles, 
call  tis  today! 

Maxell  .MDl,  $1.29-MD2,  SI.99.  Dvsan  I04/ID, 
$1.79-I04/2D,  S2.39.  Shipping  S3.75.  Also 
Verbatim,  IBM,  3M,  BASF.  TAPE  WORLD,  220 
Spring  St.,  Butler,  PA  16001,  1-800-245-6000. 
Visa,  MC. 

EARN  MONEY,  PART  OR  FULL  TIME,  AT 
HOME  with  your  computer-manual  &  forms - 
S9.95.  Write  Computer  Programs  for  Profit! 
How-to  guide  with  forms,  letters,  lips-S7.95. 
Also-Computer  Consultant  Handbook.  How  to 
earn  $  consulting  with  business-$7.95.  ]V  Tech, 
P.O.  Box  563,  Ludington,  Mi  49431 


Discount  computer  printer  ribbons  for  all 
makes/models  Ex;  Epson  1500  Nvlon  $6.99, 
Catalog:  TWS  1314  4th  Ave.,  Coraopolis,  PA 
15108  (412)  262-1482  Visa  or  MasterCard. 

NEED  THAT  CIRCUIT  DESIGNED 
into  artwork,  or  that  artwork  tabbed  into 
circuit  boards,  and  the  PCB's  assembled? 
Then  send  requirements  for  free  quote  to 
the  PC  Master,  10221  Slater  Ave., 
Suite  103-329,  Fountain  Valley,  CA  92708 

1985  INDEX  TO  ALL  COMMODORE 
MAGAZINES.  C64/128  disk  with  search/ 
browse/print  of  articles,  programs,  reviews.  Send 
S16.95  ck  or  m.o.  to:  PCdex,  Box  563,  Dayton, 
OH  45409 

IBM  PCjr  REPORT:  THE  NATIONAL  NEWS- 
LETTER. PCjr-specific  articles,  reviews.  Public 
Domain  from  across  the  nation.  $18./yr.  FCjr 
CLUB,  FOB  95067,  Schaumberg,  IL  60195 

RIBBONS  for  MOST  PRINTERS  at  LOW  PRICES! 

DELTA  MICRONiCS 

BOX  10933,  ERIE,  PA  16514-0933 

(814)455-5667 

ROBOT  KITS  -  The  MOVIT  family  of  computer 
robots  that  you  have  been  reading  about. 
PEPPY  -  navigates  by  two-way  sound  sensor, 
zips  around  on  three  wheels,  S24.99  -t-  $2  s/h. 
AVOIDER  -  infra-red  obstacle  avoidance  system,, 
walks  on  six  legs,  $44.99  +  S2  s/h. 
MR.  BOOTSMAN  -  Wired  remote  control  six  leg 
robot.  Two  motor  control,  $34.99  +  $2  s/h. 
Catalog  SI. 00.  Send  orders  to:  CompuTek, 
530  South  6th  St.,  Sunnyside,  WA  98944 


COMPUTE!  Classified  is  a  Iow-co3t  way  to  tell  over  350,000  fnicrocomputer  owners 
about  your  product  or  service. 

Rates:  S25  per  line,  minimum  of  four  linos.  Any  or  all  of  Ific  first  line  5et  in  cipilil  letters  .il  no  charge.  Add  $1.S 

por  line  (or  boKifate  words,  or  S5(l  for  the  entire  ,id  set  in  boldface  (any  number  of  lines.) 
Termsr  Prepaymeni  Ls  required   Check,  money  order,  .'\merican  Express.  Visa,  or  .MasterCard  is  accepled.  .Make 

cSiecks  payable  !o  CO\lPUTEi  Publications. 
Form:  .Ads  are  sub)ect  to  publisher's  approval  and  must  be  either  typed  or  legibl)'  printed.  One  line  equals  40 

loiters  and  spaces  between  words.  Please  underline  words  to  be  set  in  boldface. 
General  Inlormalion:  Adveniscr;  using  post  office  bos  numLiers  in  their  ads  must  supply  permsnem  address  and 

ielephone  numbers.  Orders  will  not  be  acknowledged.  Ad  will  appear  in  nest  available  issue  after  receipl. 
Closing:  Kith  of  the  third  month  preceding  cover  date  (e.g.,  June  issue  closes  March  lOlh).  Send  order  and 

remittance  [o:  Harry  Blair,  Classified  Manager,  COMPUTE!,  PO,  Bos  5406,  Greensboro,  NC  27403.  To  place  an 

ad  by  phone,  call  Harry  Blair  al  (9191  175-9809. 
Notice:  COMPUTE!  Publications  cannot  be  responsible  for  offers  or  claims  of  advertisers,  but  will  attertipt  to  screen 

oul  misleadinj;  or  questionable  copy. 


MLX 


Charles  Srannon,  Program  Editor  i 


Machine  Language 
Entry  Program  For  Atari 


MLX  is  a  labor-saving  utility  that  allows 
almost  fail-safe  entry  of  machine  lan- 
guage programs  published  in  COMPUTE!. 
You  need  to  knmv  nothing  about  machine 
language  to  use  MLX— it  was  designed  for 
everyone. 

"MLX"  is  a  new  way  to  enter  long 
nnachine  language  (ML)  programs  with 
a  minimum  of  fuss.  MLX  lets  you  enter 
the  numbers  from  a  special  list  that 
looks  similar  to  BASIC  DATA  state- 
ments. It  checks  your  typing  on  a  line- 
by-line  basis.  It  won't  let  you  enter 
illegal  characters  when  you  should  be 
typing  numbers.  It  won't  let  you  enter 
numbers  greater  than  255  (forbidden  in 
ML).  It  won't  let  you  enter  the  wrong 
numbers  on  the  wrong  line.  In  addition, 
MLX  creates  a  ready-to-use  tape  or  disk 
fUe. 

Using  MLX 

Type  in  and  save  MLX  (you'll  want  to 
use  it  in  the  future).  When  you're  ready 
to  type  in  an  ML  program,  run  MLX. 
MLX  asks  you  for  three  numbers:  the 
starting  address,  the  ending  address, 
and  the  run/init  address.  These  num- 
bers are  given  in  the  article  accompany- 
ing the  ML  program  presented  in  MLX 
format.  You  must  also  choose  one  of 
three  options  for  saving  the  file:  as  a 
boot  tape,  as  disk  binary  file,  or  as  boot 
disk.  The  article  with  the  ML  program 
should  specify  which  formats  may  be 
used. 

When  you  run  MLX,  you'll  see  a 
prompt  corresponding  to  the  starting 
address.  The  prompt  is  the  current  line 
you  are  entering  from  the  listing.  It 
increases  by  six  each  time  you  enter  a 
line.  That's  because  each  line  has  seven 
numbers — six  actual  data  numbers  plus 
a  checksum  number.  The  checksum 
verifies  that  you  typed  the  previous  six 
numbers  correctly.  If  you  enter  any  of 
the  six  numbers  wrong,  or  enter  the 
checksum  wrong,  the  computer  rings  a 
buzzer  and  prompts  you  to  reenter  the 
line.  If  you  enter  it  correctly,  a  bell  tone 
sounds  and  you  continue  to  the  next 
line. 

MLX  accepts  only  numbers  as  in- 
put. If  you  make  a  typing  error,  press 
the  DEL/BACK  SPACE;  the  entire 
number  is  deleted.  You  can  press  it  as 
many  times  as  necessary  back  to  the 
start  of  the  line.  If  you  enter  three-digit 
numbers  as  listed,  the  computer  auto- 
matically prints  the  comma  and  goes  on 


to  accept  the  next  number.  If  you  enter 
fewer  than  three  digits,  you  can  press 
the  comma  key,  the  space  bar,  or  the 
RETURN  key  to  advance  to  the  next 
number.  The  checksum  automatically 
appears  in  inverse  video  for  emphasis. 

MLX  Commands 

When  you  finish  typing  an  ML  listing 
(assuming  you  type  it  ail  in  one  ses- 
sion), you  can  then  save  the  completed 
program  on  tape  or  disk.  Follow  the 
screen  instructions.  If  you  get  any  errors 
while  saving,  you  probably  have  a  bad 
disk,  or  the  disk  is  full,  or  you've  made 
a  typo  when  entering  the  MLX  program 
itself. 

You  don't  have  to  enter  the  whole 
ML  program  in  one  sitting.  MLX  lets 
you  enter  as  much  as  you  want,  save  it, 
and  then  reload  the  file  from  tape  or 
disk  later.  MLX  recognizes  these 
commands: 

CTRL-S  Save 

CTRL-L  Load 

CTRL-N  New  Address 

CTRL-D  Display 

To  issue  a  command,  hold  down 
the  CTRL  key  (CONTROL  on  the  XL 
models)  and  press  the  indicated  key. 
When  you  enter  a  command,  MLX 
jumps  out  of  the  line  you've  been  typ- 
ing, so  we  recommend  you  do  it  at  a 
new  prompt.  Use  the  Save  command 
(CTRL-S)  to  save  what  you've  been 
working  on.  It  will  save  on  tape  or  disk, 
as  if  you've  finished,  but  the  tape  or 
disk  won't  work,  of  course,  until  you 
finish  the  typing.  Remember  to  make  a 
note  of  what  address  you  stop  at.  The 
next  time  you  run  MLX,  answer  all  the 
prompts  as  you  did  before — regardless 
of  where  you  stopped  typing — then  in- 
sert the  disk  or  tape.  When  you  get  to 
the  line  number  prompt,  press  CTRL-L 
to  reload  the  partly  completed  file  into 
memory.  Then  use  the  New  Address 
command  to  resume  typing. 

To  use  the  New  Address  com- 
mand, press  CTRL-N  and  enter  the  ad- 
dress where  you  previously  stopped. 
The  prompt  will  change,  and  you  can 
then  continue  typing.  Always  enter  a 
New  Address  that  matches  up  with  one 
of  the  line  numbers  in  the  MLX-format 
listing,  or  else  the  checksum  won't 
work.  The  Display  command  lets  you 
display  a  section  of  your  typing.  After 
you  press  CTRL-D,  enter  two  addresses 
within  the  line  number  range  of  the 
listing.  You  can  break  out  of  the  listing 


display  and  return  to  the  prompt  by 
pressing  any  key. 


Atari  MLX:  Maciilne 
Language  Entry 

For  instrgctions  00  entering  this  iisting,  please 
refer  to  "COMPUTEI's  Guide  to  Typing  in 
Programs"  in  this  issue  of  compute!. 

Sfl  100  GRAPHICS  05 DL  =  PEEK (560 
) +256«PEEK<56  1 ) +4: POKE 
DL-l,7l!P0KE     DL+2,6 

SJ110  PDSITIOfJ  8,0:?  "MLX-iP 
OSITION  23,0:?  "fgrySf^fr 
tZ^EETOar"  :  PQKE    710,0:? 

JK120    7     "Starting    Address";: 
It^PUT     BEG:?     "        Ending 
Address"; : INPUT    FIN:? 
"Run/Init     Address";: IN 
PUT     STARTADR 

CD  130  DIM  A  (6)  ,  BUFFERS  (FIN-e 
E6+127) ,T»C20),FS(20), 
CI0»(7) ,SECT0R«(12B),D 
SKINV$ (6! 

JJ140     OPEN     #1,4,0,  "K:  ":?     :? 
,  "Dape    or    Ei  s); :  "  ; 

!«1S0  BUFFER*  =  CHR«(0)  :  BUFFER 
$(FIN-BEB+30)=BUFFERS: 
BUFFERS(2)=BUFFeR»:SEC 
TOR«=BUFFER* 

BC  160  ADDR  =  BEG:CID*="hfifi":  CI 
DS<4) =CHR*  < 170)  : CIO*  C3 
)="LV":CI0t<7)=CHR«(22 

a) 

EJ  170  GET  #1, MEDIA:  IF  MEDIA< 

>84  AND  t1EDIA<>6B  THEN 
170 
fO  180  ?  CHR«<MEDIA)  :?  :IF  ME 

DIAOASCCT")  THEN  BUF 

FERS="":GaTO  250 
PL  1<?0  BEG  =  BEG-24:  BUFFERt  =  CHR 

*(0) :BUFFER«(2)=CHR*(I 

NT{  (FIN-BEI3  +  127)/128)  ) 
KF  200  H=INT  (BEG/256)  :L=BE6-H 

*256: BUFFER* (3) =CHR«(L 

) : BUFFER* (4) =CHR* (H) 
£C210  PlNIT  =  BEG  +  8:  H=INT  (PINI 

T/256) : L=PINIT-H*256:B 

UFFER*<5)=CHR« (L) : BUFF 

ER« (6) =CHR« (H) 
fS  220  FOR  1=7  TO  24 :  READ  A:B 

UFFER*(I)=CHR*(A3 :NEXT 
I:DATA  24,  96,  16"?, 60,  1 

41,2,211, 169, 0, 133, 10, 

16'?,  0,  133,  1  1  ,  76,0,  0 
DP230  H=INT  (STARTADR/256)  :L  = 

STARTADR-H»256: BUFFER* 

(15)=CHRS(L) :BUFFER*(1 

9) =CHR* (H) 
KL  240     BUFFERS  (23)=CHR*(L)  :  BU 

FFER* (24) aCHR* (H) 
HI  250     IF    MEDIAOASCt  "D"  J     THE 

N    360 
00  260    ?     :?     "Boot    [<;isl<    or     Bin 

ary    Qi 1 e; " ; 
LI  270     BET    #1,DTYPE:1F     DTYPE< 

>68    AND     DTYPE<>70     THEN 
270 
tl!280     ?     CHR*(DTYPE)  :  IF    DTYPE 

=70     THEN    360 
PJ  290     BEQ  =  BEG-30:BUFFER«  =  CHR 

« (0)  : BUFFER* (2)=CHR»  < I 


Aprii  1966     COMPUTEI      121 


IE  300 
HH  310 

AO320 
GA  330 

0!  340 
M350 

JP  360 

Ji;  370 
NF3e0 

BF  390 

01  400 

SI  410 

HO  420 
M  430 

a  440 

m4S0 

HA  460 
FH  470 

EA  480 

HH  490 
Jn  500 

KK  510 
CH  S20 

EK  530 

FL  540 

H!SS0 

6nS60 
FI  570 
PH  580 

FB  590 

B  600 

ni  610 


NT( (FIN-BEG+127)/128) ) 
H=INT (BeB/256) : L=BEG-H 
«2S6: BUFFER* (3) =CHR*  <L 
): BUFFER* (4) =CHR«<H) 
PINlT  =  STARTfiDR:H=INT  CP 
INrT/2S6) :L=PINIT-H«25 
6:BUFFER*(5)=CHR«(L» :B 
UFFER«(6)=CHR«(H) 
RESTORE  330:FDR  1=7  TO 
30: READ  A:BUFFERt(I!= 
CHR»(A! :NEXT  I 
DATA  169,0,141,231,2,1 
33, 14, 169,0, 141,232,2, 
133, IS, 169,0, 133, 10, 16 
9,0, 133, 11 , 24, 96 
H-INT(BES/256) s L=BEQ-H 
»256: BUFFER*  <8) =CHR* (L 
) : BUFFER* (15) =CHR«(H) 
H=INT(STARTADR/256):L= 
STARTADR-H»2S6: BUFFER* 
(22>-CHR* (LI : BUFFER* (2 
6)'=CHR»  (H> 

8RAPHICS  0:POKE  712,10 
:POKE  710,10!PDKE  709, 
2 
?  ADDR; " s " ; : FOR  J=l  TO 

6 
GOSUB  570:  IF  IM  =  - 1  THEN 

J=J-1:G0T0  380 
IF  N=-19  THEN  720 
IF  N=-12  THEN  LET  READ 
=1:Q0TD  720 

TRAP  410: IF  N=-14  THEN 
?  :?  "New  Address";:! 
NPUT  ADDR:?  : GOTO  370 
TRAP  40000: IF  N< >-4  TH 
EN  480 

TRAP  430:7  :?  "Display 
: From" ; : INPUT  F:?  , "To 
";: INPUT  T:TRAP  32767 
IF  F<BEG  DR  F>FIN  DR  T 
<BEG  OR  T>FIN  OR  T<F  T 
HEN  ?  CHR* (253) ; "At  le 
ast  ";BEG;",  Not  More 
Than  ";FIN:BQrO  430 


FOR  I=F 
:  ?  I  i  "  : 
I N=PEEK 
+K-BE6> 
LEN (STR 
IF  PEEK 
GET  #1, 
GOTO  37 
?  T«;", 
S  (  I  26  )  ; 
OTO  370 
IF  N<0 
0 

A ( J ) =N: 
CKSUH=A 
6) 1256: 
SUM=CKS 
KSUM-25 
EXT  1 
RF=12B: 
S:GOSUB 
0,0:RF= 
IF  NOC 
"  I  near r 
: ?  : GOT 
FOR  W=l 
SOUND  0 
FOR  1=1 
BUFFER* 
A ( I) : NE 
ADDR=AD 
IN  THEN 
flOTD  71 
N=0: Z=0 
GET  #1, 
=  44  OR 
IF  A<32 
RN 

IF  flOl 
GDSUB  6 


0     T  STEP  6:? 
iFOR  K=0  TO  5 
DR (BUFFER*) +1 
*="000": T« ( 4- 
N) ) )=5TR*(N) 
64X255  THEN 
POP  iPQP  !  ?  : 

NEXT  K:?  CHR 
EXT  I i  ?  :?  :G 


THEN  ?  : GOTO  37 

NEXT  J 

DDR-INT (ADDR/25 
FOR  1=1  TO  6:CK 
UH+A  < I )  :CKSUM  =  C 
6* (CKSUM>255) :N 


SOUND 

570: 

0:7    C 

KSUM 

BCt  " 

0  370 
5  TO 
,50,  1 

TO  6 
)  +ADD 
XT  I 
DR  +  6: 

370 
0 


0, 200, 12, 
SOUND  0,0, 
HR«(126) 
THEN  ?  : ? 
CHR* (253) ; 

0  STEP  -1: 
0,M:NEXT  U 
:POKE  ADR( 
R-BE6+I-1 , 

IF  ADDR<=F 


A: IF  fl-155  OR  A 
A=32  THEN  670 
THEN  N=-fl:RETU 

26  THEN  630 

90: IF  1=1  AND  T 


:NEXT  1 
'  ";CHR«( 


=44  THEN  N=-l:?  CHR* ( 1 

26) ; :GOTO  690 
Sfl620  GOTO  570 
6J  630  IF  A<48  OR  A>57  THEN  5 

80 
AN  640  ?  CHR*  (A  +  RF)  ;  :  N=Nt  10  +  A 

-48 
ES  650     IF    N>255    THEN    7    CHR*  (2 

53) ; ! A»126:Q0T0    600 
EH  660     Z  =  Z  +  liIF     Z<3     THEN    580 
JH  670     IF     Z  =  0     THEN     ?     CHR*  (253 

) ; sGOTO    570 
KC  680     ?     ",  "  J  :  RETURN 

1(0690    POKE     752,1:F0R     1  =  1     TO 
3:?    CHR* (30) S :GET     «6,T 
:  IF     T044    AND     TOSS     TH 
EN    ?    CHR* (A) ; 

PI  700     POKE     752,0:7 
126) ; :RETURN 

KI1710  GRAPHICS  0:POKE  710,26 
:POKE  712,26:P0KE  709, 
2 

fF  720     IF    I1EDIA  =  ASC(  "T")     THEN 
890 

BS  730    REM   man^Tm 

K740     IF  READ  THEN  ?  :?  "Loa 

d  File":? 
IE  750  IF  DTYPE<  >70  THEN  1040 
AE  760  7  :7  "Enter  AUTORUN.SY 

S  for  automatic:  use";? 
5?  "Enter  -filename":! 

NPUT  T» 
eF770  F*  =  T«:IF  LEN(T*)>2  THE 

N  IF  T*( 1,2)<>"D: "  THE 

N    F*="D! " : F» (3) sT* 
»J  780  TRAP  a70:CLOSE  t2:0PEN 
#2,B-4»READ, 0,F»: ?  :? 
"Work! nq ..." 
JH  790  IF  READ  THEN  FOR  1  =  1  T 

0  6:BET  #2,A:NEXT  I : GO 

TO    820 
PD  S00     PUT     #2,255:PUT     fl2,255 
nj810    H=INT(BEQ/256)  :L  =  BEG-H 

t256sPUT    #2,L:PUT    #2,H 

:H-=INT(FIN/256)  ;L-FIN- 

H«236:PUT    #2,L:PUT     #2, 

H 
KF  S20  GOSUB  970:  IF  PEEK(195> 

>1  THEN  870 
IF  S30  IF  STARTADR  =  0  DR  READ 

THEN  850 
FO  840  PUT  #2,224:PUT  «2,2:PU 

T  #2,22S:PUT  »2,2:H=IN 

T(STARTADR/256) :L=STAR 

TADR-H«256:PUT  #2,L:PU 

T  #2,H 
6C  850  TRAP  40000:  CLOSE  #2:7 

"Finished. ": IF  READ  TH 

EN  7  :7  :LET  READ=0iQO 

TO  360 
HF860  END 

FOa70  ?  "Error  ";  PEEK  ( 195  );  " 
trying  to  access":?  F 

*:CLOSE  #2:?  : GOTO  760 
HC  880  REM  ■;TiTil^^:1J=* 
HN  B90  IF  READ  THEN  ?  ;?  "Rea 

d  Tape" 

HI  900  ?  :?  :?  "Insert,  Rewin 

d  Tape.":?  "Press  PLAY 
"; : IF   NOT  READ  THEN 

?  "&  RECORD" 
LF9I0  7  :?  "Press  l:l:*ili:i:  whe 

n  ready:"; 
JH  920  TRAP  960:CLOSE  #2:0PEN 
#2, 8-4 (READ, 128, "C: " : 

?  s  ?  "Worki  ng. .  .  " 
NH  930  GOSUB  970:  IF  PEEK  (195) 

>1  THEN  960 
SC  940  CLOSE  #2:TRAP  40000:? 

"Finished,":?  :?  :IF  R 

EAD  THEN  LET  READ=0!GO 

TO  360 
KF  950  END 
CO  960  ?  :?  "Error  ";  PEEK  (195 

);"  when  readi ng/wri t i 


ng  boot  tape":?  i CLOSE 
#2:G0T0  890 

NB970  REM  mi.mm.t-.T. g^»-: iu .m jVTn 


EA  980  X 
EF  990  I 
C 
HD  1000 


FH  1010 

HD  1020 

BB  1030 

KA  1040 
SC  1050 
HE  1060 

FC  1070 

EC  1080 

CP  1090 

AC  1  100 


LE  1110 
LI  1120 

10  1  130 


PL  1  140 

fn  1  150 

DN  1160 

F5  1170 

Elf  1180 

m  1  190 

JJ  1200 


(I  1210 

BL  1220 

16  1230 

!H  1240 

«P  1250 

EE  1260 

H  1270 

ES  1280 

6L  1290 

NL  1300 

A!  1310 

JA  1320 

PN  1330 

CA  1340 

PF  1350 


!P  1360 

CO  1370 

PD  1380 

A«  1390 


KJ  14  00 

KS  14  10 


32!REM  Fi  lett2,*20 
CC0I1  =  834:  ICBADR  =  a36:  I 
BLEN=S40; ICSTAT=B35 
H  =  I  NT (ADR (BUFFER*)  /25 
6) : L=ADR( BUFFER* )-H»2 
36:P0KE  ICBADR+X,L:PO 
KE  ICBADR+X+1,H 
L=FIN-BEB+l:H=INT(L/2 
56) !L=L-H«256:P0KE  IC 
BLEN+X,L:P0KE  ICBLEN+ 
X  +  1  ,H 

POKE  ICCOM+X , 1 l-4tREA 
D: A=USR(ADR (CI04) , X) 
POKE  195, PEEK (ICSTAT) 

: RETURN    

REM  «.-i^Hii«J:»g^a 

IF  READ  THEN  1100 

?  :?  "Format  Disk  In 

Drive  1?  (Y/N)J"; 

GET  »l,AsIF  A078  AND 

A<>a9  THEN  1070 
?  CHR*(fl):IF  fl=78  THE 
N  1100 

?  :?  "Formatting...": 
XIO  254, #2,0,0, "D: " :7 

"Format  Complete":? 
NR=INT((FIN-BEG+127)/ 
128) : BUFFER* (FIN-BE6+ 
2)=CHR»{0) : IF  READ  TH 
EN  ?  "Reading ...": GOT 
0  1120 

7  "Writing. . . " 
FDR  1=1  TO  NR:S=I 
IF  READ  THEN  GOSUB  12 
20:BUFFER«(II128-I27) 
=SECTOR«: GOTO  1160 
SECTOR*=BUFFER* (1*128 
-127) 

GOSUB  1220 

IF  PEEK  (DSTATSX  >1  TH 
EN  1200 
NEXT  I 

IF   NOT  READ  THEN  END 
?  :?  :LET  READ=0:GOTa 

360 
?  "Error  on  disk  acce 
ss.":?  "May  need  form 
att i ng . " : GOTO  1040 
REM 

REM  ^naniiMasg^^aeE 

M:1.1H*^:T3 


REM  Drive  ONE 

REM  Pass  buffer  in  SE 

CTOR* 

REM  sector  #  in  varia 

ble  S 

REM  REflD=l  for  read, 

REM  READ=0  for  write 

BASE=3»256 

DUNIT=BASE+1:DC0MND=B 

ASE+2: DSTATS=BASE+3 

DBUFLD=BASE+4:DBUFHI= 

BaSE+5 

DBYTLD=BftSE+S: DBYTHI= 

BASE+9 

DAUXl=BASE+ia:DAUX2=B 

ASE+1 1 

REM  DIM  DSKINVt (4) 

DSKINV*="hLS":DSKINyt 

(4) =CHR« (228) 

POKE  DUNIT, 1: A=ADR(SE 

CTORS) :H=INT(A/256) :L 

=  A-2561:H 

POKE  DBUFHI.H 

POKE  DBUFLO.L 

POKE  DCOMND, 37-5«READ 

POKE  DAUX2, INT (S/256) 

:PDKE  DAUXl ,S-PEEK (DA 

UX2) 1256 

A=U5R<ADR (DSKINV*) ) 

RETURN  @ 


122     COMPUTEI     April  1986 


MLX 


Machine  Language  Entry  Program 
For  Commodore  64 


Charles  Brannon,  Program  Editor 


MLX  is  a  labor-saving  utility  that  al- 
lows almost  fail-safe  entry  of  machine 
language  programs  published  in  COM- 
PUTE!. You  need  to  know  nothing  about 
machine  language  to  use  MLX — it  was 
designed  for  everyone.  At  least  8K  ex- 
pansion memory  is  required. 

MLX  is  a  new  way  to  enter  long  machine 
language  (ML)  programs  with  a  mini- 
mum of  fuss.  MLX  lets  you  enter  the 
numbers  from  a  special  list  that  looks 
similar  to  BASIC  DATA  statements.  Ft 
checks  your  typing  on  a  line-by-line 
basis.  It  won't  let  you  enter  illegal  char- 
acters when  you  should  be  typing  num- 
bers. It  won't  let  you  enter  numbers 
greater  than  255  (forbidden  in  ML).  It 
won't  let  you  enter  the  wrong  numbers 
on  the  wrong  line.  In  addition,  MLX 
creates  a  ready-to-use  tape  or  disk  file. 

Using  MLX 

Type  in  and  save  the  appropriate  ver- 
sion of  MLX  (you'll  want  to  use  it  in  the 
future).  When  you're  ready  to  type  in  an 
ML  program,  run  MLX.  MLX  for  the  64 
asks  you  for  two  numbers:  the  starting 
address  and  the  ending  address.  These 
numbers  are  given  in  the  article  accom- 
panying the  ML  program. 

When  you  run  MLX,  you'll  see  a 
prompt  corresponding  to  the  starting 
address.  The  prompt  is  the  current  line 
you  are  entering  from  the  listing.  It  in- 
creases by  six  each  time  you  enter  a  line. 
That's  because  each  line  has  seven  num- 
bers— six  actual  data  numbers  plus  a 
checksum  number.  The  checksum  verifies 
that  you  typed  the  previous  six  numbers 
correctly.  If  you  enter  any  of  the  six 
numbers  wrong,  or  enter  the  checksum 
wrong,  the  computer  rings  a  buzzer  and 
prompts  you  to  reenter  the  line.  If  you 
enter  it  correctly,  a  bell  tone  sounds  and 
you  continue  to  the  next  line. 

MLX  accepts  only  numbers  as  in- 
put. If  you  make  a  typing  error,  press  the 
INST/DEL  key;  the  entire  number  is 
deleted.  You  can  press  it  as  many  times 
as  necessary  back  to  the  start  of  the  line. 
If  you  enter  three-digit  numbers  as  list- 
ed, the  computer  automatically  prints 
the  comma  and  goes  on  to  accept  the 
next  number.  If  you  enter  less  than  three 
digits,  you  can  press  either  the  space  bar 
or  RETURN  key  to  advance  to  the  next 
number.  The  checksum  automatically 
appears  in  inverse  video  for  emphasis. 

To  simplify  your  typing,  MLX  rede- 
fines part  of  the  keyboard  as  a  numeric 
keypad  (lines  581-584): 


U      I      O  7      8       9 

H     J     K     L    become    0     4     5      6 

M     ,      .  12      3 

64  MLX  Commands 

When  you  finish  typing  an  ML  listing 
(assuming  you  type  it  all  in  one  session), 
you  can  then  save  the  completed  pro- 
gram on  tape  or  disk.  Follow  the  screen 
instructions.  If  you  get  any  errors  while 
saving,  you  probably  have  a  bad  disk,  or 
the  disk  is  full,  or  you've  made  a  typo 
when  entering  the  MLX  program  itself. 
You  don't  have  to  enter  the  whole 
ML  program  in  one  sitting.  MLX  lets  you 
enter  as  much  as  you  want,  save  it,  and 
then  reload  the  file  from  tape  or  disk 
later.  MLX  recognizes  these  commands: 

SHIFT-S:  Save 
SHIFT-L:  Load 

SHIFT-N:  New  Address 
SHIFT-D;  Display 

When  you  enter  a  command,  MLX 
jumps  out  of  the  line  you've  been  typ- 
ing, so  we  recommend  you  do  it  at  a  new 
prompt.  Use  the  Save  command  to  save 
what  you've  been  working  on.  It  will 
save  on  tape  or  disk,  as  if  you've  fin- 
ished, but  the  tape  or  disk  won't  work, 
of  course,  until  you  finish  the  typing. 
Remember  what  address  you  stop  at. 
The  next  time  you  run  MLX,  answer  all 
the  prompts  as  you  did  before,  then 
insert  the  disk  or  tape.  When  you  get  to 
the  entry  prompt,  press  SHIFT-L  to  re- 
load the  partly  completed  file  into  mem- 
ory. Then  use  the  New  Address 
command  to  resume  typing. 

To  use  the  New  Address  command, 
press  SHIFT-N  and  enter  the  address 
where  you  previously  stopped.  The 
prompt  will  change,  and  you  can  then 
continue  typing.  Always  enter  a  New 
Address  that  matches  up  with  one  of  the 
line  numbers  in  the  special  listing,  or 
else  the  checksum  won't  work.  The  Dis- 
play command  lets  you  display  a  section 
of  your  typing.  After  you  press  SHIFT- 
D,  enter  two  addresses  within  the  line 
number  range  of  the  listing.  You  can 
abort  the  listing  by  pressing  any  key, 

64  MLX:  Machine  Language 
Entry 

10  REM  LINES  CHANGED  FROM  MLX 

{SPACEiVERSION  2.00  ARE  750 

,765,770  mD    860     trem  50 

20  REM  LINE  CHANGED  FROM  MLX    V 

ERSION  2.01  IS  300  I  rem  147 

100  PRINT"{CLR}g63"rCHR$(142) r 

CHR$(8) ; ! POKES  3 281,1: POKES 

3280,1  sretin   67 


101  POKE  788, 52: REM  DISABLE  RU 
t5/ST0P  trem  119 

110    PRINT" (RVS) {39    SPACES)"; 

:rem   176 

120    PRINT"  {RVSH  14    SPACES] 
(right) {0FFiE*3£ERVS) 
(RIGHT)     (right) 12    SPACES) 
i*HOFF3^*l£{RVS}£{RVS] 
(14   SPACES]";  :  resin   250 

130    PRINT"  (RVSH  14    SPACES) 
(right)     §gM  RIGHT) 
(2    RIGHT)     {0FF)£(RVS)£ 
g*3(0FF)g*lfRVST 
(14    SPACES}";  :rem    35 

140    PRINT"  (RVSH41    SPACES)" 

:reni   120 

200  PRINT"  (2  D0WH3  (PURKBLK)  M 
ACHINE  LANGUAGE  EDITOR  VER 
SION  2. 02 {5  DOWN)": rem  238 

210  PRINT"|5|(2  UP)STARTING  AD 

DRESS?{a  SPACES) (9  LEFT)"; 

: rem  143 

215  INPUTS:F=l-F:C$=CHR?(31-t-ll. 
9*F)  :rem  166 

220  IFS<256OR(S>40960ANDS<4915 
2 ) ORS>  53  247THENGOSUB3000 :G 
OTO210  :rem  235 

225  PRINT:  PRINT:  PRINT  :re!n  180 

230  PRINT"i53  52  UP)ENDING  ADDR 
ESS? (8  SPACES) (9  LEFT)";: I 
NPUTE3F=1-F:C9=CHRS{ 31+119 
*F)  :rem  20 

240  IFE<256OR(E>40960ANDE<4915 
2)ORE>53247THENGOSUB3000:G 
OTO230  :rem  183 

250  IFE<STHENPRINTC5;"(RVS)END 
ING  <  START (2  SPACES )" :GOS 
UB1000:GOTO  230    : rem  176 

260  PRINT: PRINT: PRINT  : rem  179 

300  PRINT"{CLR)";CHR$(14) :AD=S 

:retn  56 

310  A=lsPRINTRIGHT$("0000"+MID 
S(STR$(AD),2),5);":"; 

:rGm   33 

315    F0RJ=AT06  :rem   33 

320  GOSUB570:IFN=-1THENJ=J+N:G 
OTO320  :rem   228 

390    IFN=-211THEN    710  : rem    62 

400    IFN=-204THEN    790  : rem    64 

410    IFN=-206THENPRI NT: INPUT" 

(DOVfiJl ENTER    NEW    ADDRESS "; Z 
Z  : rem    44 

415  IFN=-206THENIFZZ<SORZZ>ETH 
ESPRlNT"(RVS}OUT  OF  RANGE" 
:GOSUB1000!GOTO410:rem    225 

417  IFN=-206THENAD=ZZ: PRINT :G0 
TO310  :rem   238 

420    IF    NO -196    THEN    480 

:reni    133 

430  PRINT:INPUT"DISPLAY:FROM"; 
F: PRINT , "TO" ; : INPUTT 

s rem  234 

440  IFF<SORF>E0RT<SORT>ETHENPR 
INT "AT  LEAST" ;S;" (LEFT],  S 
OT  MORE  THAN";E:GOTO430 

: rem  159 

450  FORI=FTOTSTEP6!PRlNT: PRINT 
RIGHT5( "0000"+MID5(STR$( I) 
,  2 ) , 5 ) ; "  I  "  ;  : rem    30 

451  FORK=0TO5:N=PEEK(1+K):PRIN 
TRIGHT$( "00"+MID$( STR5(N) , 
2), 3);",";  :rem   66 


Aprn986     COMPUTCI      123 


460  GETA?:IFA?>""THENPRINT:PRI 
NT:GOTO310  : rem  25 

470  NEXTK!PRINTCHR5(20) ; :NEXTI 
:PRINT: PRINT : GOTO310 

: rem  50 

480  IPN<0  THEN  PRINT:GOTO310 

:rem  168 

490  A(  J)=N;tlEXTJ        :  rem  199 

500  CKSUM=AD-INT(AD/256)*256:F 
0  RI= 1 T06 : CKSU  H= ( CKSU  M+A ( I ) 
)Ai.>JD255:NEXT  :rem   200 

510  PRINTCHR$(18) ; :GOSUB570:PR 
IHTCHR?(146);  : rem   94 

511  IFN=-1THENA=6:G0T0315 

■  :reni  254 

515  PRINTCHR5(20) :IFN=CKSUMTHE 

N530  :rem  122 

520  PRINT: PRINT "LINE  ENTERED  W 

RONG  :  RE-ENTER": PRINT: GOS 

UB1000:GOTO310     : rem  176 

530  GOGUB2O00  :rem  218 

540  F0RI=1T06:P0KEAD+I-1,A(I) : 

NEXT:POKE5427  2,0;POKE5427  3 

,0  :rem  2  27 

5  50  AD=AD+6:IF  AD<E  THEN  310 

I  rem  212 
560  GOTO  710  :rem  108 

570  N=0  !Z==0  :rem  88 

530  PRINT "Ei;3":       srem  81 

581  GETA?:IFAS  = rtlENSSl 

: rem   95 

582  AV=-{AS="H")-2*(A$=",")-3* 
(A5=". ")-4*(A$="J")-5*(A?= 
"K" )-6*(A$="L")  :rera    41 

583  AV=«AV-7*(A$="U"  )-8*(AS  =  '"I" 
)_iJ*{A5="0")  :IFAS  =  "H"THENA 
$="0"  :rein    134 

584  IFAV>0THENA5=CHR$(48+AV) 

: rem    134 

585  PRINTCHR$(20),- !A=ASC{A5)  :I 
FA=13ORA=44ORA=32THEN670 

-.rem    229 
5  90    I FA>128THENN=-A: RETURN 

: rem   137 
600    IFA<>2g    THEN    630         : rem    la 
610    GOSUB690:IFI  =  lANDT=44THi;NN 
=  -i:PRrNT"(OFFHLEBTl 
{LEFT}";  :GOTO690         :reiii   62 
620    GOTO570  : rem    109 

630    IFA<48ORA>57'rHEN580 

:  rem   105 
640    PRINTA?; :N=N*ia+A-48 

:  rein   106 

650  IFN>255  THEN  A=23  :GOSUB10lJ 

a:GOTO600  :rem  229 

660  Z=Z+L:IF2<3TH£N5B0  : rem  71 

670  IFZ=0THENGOSUB1000:GOTO570 

:rem  114 
680  PRINT", "r rKETURN   : rem  240 

690  S%=PEEK{209)+256*PEEK(2ia) 
+PEEK(211)         :rem  149 

691  F0RI=lTO3:T=PEEK(S%-I) 

: rem  67 
695    IFT<>44ANDT<>58THENPQKES%- 

I,3  2:HEXT  : rem    205 

700    PRINTLEFT$( "t3    LEFT)",I-1) 

; : RETURN  : rem    7 

710    PRINT"ECLR] {RVS}***    SAVE    * 

**i3    DOWN)"  : rem    236 

715    PRINT" f 2    DOVftj) (PRESS    { RVS ) 

RETURN (OFF)    ALONE    TO    CANCE 

L    SAVE) (down}"  :rem    106 

720    F5="" : INPUT "[ DOWN}    FILENAM 

E"rF?:IFF5=""THENPRINT:PRI 

NT:G0T0313  : rem   71 

730    PRINT: PRINT" i 2    DOWN }{ RVS }T 

{OFFJAPE  or  (RVS}DfOFF)lSK 

J  (T/D)"  :rem  22B 

740  GETA5:IFAS<>"T"ANDAS<>"D"T 

iiEN74a  :reni  36 

750  DV=1-7*(A5="D") :IFDV=aTHEN 


F$="0:"+F5:OPEN15,8,15, "S" 
+F5:CL0SE15  : rem  212 
760  T5=F?:ZK=PEEK{53)+256*PEEK 
(54)-LEN(T$) :P0KE7a2,ZK/25 
6  : rem  3 

762  PQKE78I,ZK-PEEK(782)*256:P 
OKE7e0 , LEN ( T5 ) : SYS65469 

:rem  1B9 

763  POKE780,1:POKE781,DV:POKE7 
82,1 :SYS65466       : rem  69 

755  K=S:POKE254,K/256:POKE253, 
K-PEEK( 254) *256 :POKE780 ,25 
3  : rem  17 

766  K=E+1 :POKE782,K/256:POKE78 

1,K-PEEK(782)*256:SYS65496 

: rem  235 

770  IFCPEEK(783)ANDl)OR(191AND 
ST)THEN780  : rem  111 

775  PRINT" EDOWNJDONE. {DO\rtl)":G 
OTO310  : rem  113 

780  PRINT" {DOVffli ERROR  ON  SAVE. 
(2  SPACES )TRY  AGAIN. ":IFDV 
=1THEN720  :rem  171 

781  OPEN15,8,15:INPUT#15,E15,E 
25  rPRINTEl? ; E2? :CL0SEi5 :G0 
TO720  :rem  103 

790  PRINT"(CLR}{RVS]***  LOAD  * 
**(2  DOWN] "        rrem  212 

795  PRINT" [2  DOWN ]( PRESS  ( RVS 1 
RETURN (OFF)  ALONE  TO  CANCE 
L  IJDAD)"  :rem  82 

800  F$="":INPUT"(2  DOWN)  FILEN 
AME" ; F5 : 1FF5=" "THENPRINT:G 
OTO310  :rem  144 

810  PRINT:  PRINT"  (2  iX3Vffi)(RVS)T 
{off)ape  or  f  RVS)D(0FF)IS1< 
:  (T/D)"  irem  227 

820  GETA$:IFA5<>"T"ANDA$<>"D"T 
HEN82a  :rem  34 

830  DV=1-7*{A?="D") :IFDV=8THEN 
F5="0:"+F5         :rem  157 

840  T53F5:ZK=PEEK(53)+256*PEEK 
(54)-LEN(T?) :POKE782,ZK/25 
6  : rem  2 

841  POKE78i,ZK-PEEK(782)*256:P 
OKE780,LEN(T9) :SYS65469 

: rem  107 
845  POKE780,1:POKE781,DV:POKE7 
82,1:SYS65466  :rem  70 
850  POKE780,0:SYS65493  : rem  11 
860  IF( PEEK( 783) AUDI ) 0R( 191AND 
ST)THEN870  : rem  111 
865  PRINT"  {DOWNJDONE.  '■:GOTO310 

:rem  96 
870  PRINT" (DOWN) ERROR  ON  LOAD. 
(2  SPACES )TRY  AGAIN. (DOWN) 
":IFDV=1TMEN800  : rem  172 
880  OPEN15,8, 15:INPUT#15,E15,E 
25 !PRINTE1$; E2S :CL0SE15 :G0 
TO800  :rem  102 

1000  REM  BUZZER        : rem  135 

1001  POKE54296,15:POKE54277,4S 
:POKE54278, 165    :rem  207 

1002  POKE54276,33:POKE  54273,6 
:POKE54272,5       : rem  42 

1003  FORT=1TO200:NEXT:POKE5427 
6,32:POK£54273,0:POKE54  27 
2,0:RETURN        : rem  202 

2000  REM  BELL  SOUND     ; rem  73 

2001  POKE54296,15:POKE54277,0: 
POKE54278,247     :rem  152 

2002  POKE  54276,17 :POKE54273, 4 
0:POKE54272,0      :rem  86 

2003  FORT=1TO100 :NEXT:POKE5427 
6, 16: RETURN        : rem  57 

3000  PRINTC5;" (RVS)NOT  ZERO  PA 
GE  OR  ROM":GOTO1000 

: rem  39 


Save  Your 
Copies  of 
COMPUTE! 

Protect  your  back  issues 
of  COMPUTE!  in  durable 
binders  or  library  cases, 
Each  binder  or  case  is 
custom-made  in  flag-blue 
binding  with  embossed 
white  lettering.  Each  holds 
a  year  of  COMPUTE!.  Or- 
der several  and  keep 
your  issues  of  COMPUTE! 
neatly  organized  for  quick 
reference.  (These  binders 
make  great  gifts,  tool) 


Binders  Cases: 

$8.50  each;  $6.95  each; 

3  for  $24.75;  3  for  $20,00; 

6  for  $48.00  6  for  $36.00 

(Please  add  $2.50  per  unit 
for  orders  outside  the  U.S.) 

Send  in  your  prepaid  order 
with  the  attached  coupon 


Moil  to:  Jesse  Jones  Industries 
P.O.  Box  51 20 
Dept.  Code  COTE 
Philadeiphia.  PA  19141 

Please  send  me COM- 
PUTE! n  cases  n  binders. 
Enclosed  is  my  check  or  money 

order  for  S (U.S.  funds 

only.) 

Name 

Address 

City 

state Zip 

Satisfaction  guaranteed  or  money 

refunded. 

Please  allow  4-6  weeks  for  delivery. 


12^     COMPUTEI      April  1986 


COMPUTEi's  Guide 
To  Typing  in  Programs 


Computers  are  precise — type  the  pro- 
gram exactly  as  listed,  including  neces- 
sary punctuation  and  symbols,  except 
for  special  characters  noted  below.  We 
have  provided  a  special  listing  conven- 
tion as  vt'ell  as  a  program  to  check  your 
typing — "The  Automatic  Proofreader." 

Programs  for  the  IBM,  TI-99/4A, 
and  Atari  ST  models  should  be  typed 
exactly  as  listed;  no  special  characters 
are  used.  Programs  for  Commodore, 
Apple,  and  Atari  400/800/XL/XE 
computers  may  contain  some  hard-to- 
read  special  characters,  so  we  have  a 
listing  system  that  indicates  these  con- 
trol characters.  You  will  find  these 
Commodore  and  Atari  characters  in 
curly  braces;  do  not  type  the  braces.  For 
example,  {CLEAR}  or  {CLR}  instructs 
you  to  insert  the  symbol  which  clears 
the  screen  on  the  Atari  or  Commodore 
machines.  A  complete  list  of  these  sjnm- 
bois  is  shown  in  the  tables  below.  For 
Commodore,  Apple,  and  Atari,  a  single 
symbol  by  itself  within  curly  braces  is 
usually  a  control  key  or  graphics  key.  If 
you  see  {A},  hold  down  the  CONTROL 
key  and  press  A.  This  will  produce  a 
reverse  video  character  on  the  Commo- 
dore (in  quote  mode),  a  graphics  char- 
acter on  the  Atari,  and  an  invisible 
control  character  on  the  Apple, 

Graphics  characters  entered  with 
the  Commodore  logo  key  are  enclosed 
in  a  special  bracket:  f<A>].  In  this  case, 
you  would  hold  down  the  Commodore 
logo  key  as  you  type  A.  Our  Commo- 
dore listings  are  in  uppercase,  so  shifted 
symbols  are  underlined.  A  graphics 
heart  symbol  (SHIFT-S)  would  be  listed 
as  S.  One  exception  is  {SHIFT- 
SPACE}.  When  you  see  this,  hold  down 
SHIFT  and  press  the  space  bar.  If  a 
number  precedes  a  symbol,  such  as  {5 
RIGHT},  {6  S},  or  f<8  Q>|,  you  would 
enter  five  cursor  rights,  six  shifted  S's, 
or  eight  Commodore-Q's.  On  the  Atari, 
Inverse  characters  (white  on  black) 
should  be  entered  with  the  inverse  video 


Atari  400/SOO/XL/XE 


Ten  you  see 

tCLEAR} 

CUPJ 

(DOWN} 

{LEFT> 

tRIQHT> 

{BACK  SJ 

t DELETE) 

{INSERT} 

{DEL  LINE} 

{INS  LINE} 

{TAB> 

CCLR  TAB} 

{SET  TAB> 

{BELL} 

{ESCJ 


Type 


ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 


SHIFT  < 
CTRL  - 
CTRL  = 
CTRL  + 
CTRL  ( 
DELETE 
CTRL  DELETE 
CTRL  INSERT 
SHIFT  DELETE 
SHIFT  INSERT 
TAB 

CTRL  TAB 
SHIFT  TAB 
CTRL  2 

esc 


See 

f 
* 

U 
U 
□ 

a 

a 

a 


Clear  Screen 
Cursor  Up 
Cursor  Down 
Cursor  Left 
Cursor  Right 
Backspace 
Delete  character 
Insert  character 
Delete  line 
Insert  line 
TAB  key 
Clear  tab 
Set  tab  stop 
Ring  buzzer 
Escape  key 


Commodore  PET/CBIM/ VIC/64/ 1 28/ 1 6/ +4 


WhenYbu 
Read: 

{CLR} 

(HOME} 

(UP) 

(DOWN) 

{LEFT} 

(RIGHT) 

(RVS) 

{OFF} 

(BLK) 

{WHTj 

(RED) 

(CYN) 

(PUR) 

{GRN} 

iBLU) 

(YEL) 


[shift 


Press: 


See: 


CIR/HOME 


CXR/HOME 


SHIFT 


SHUT 


—  CRSR-* 


— CRSR— » 


CTRL 


:  CTRL  i 


CTRL  i 


1      ' 


:  CTRL 


CTRL 


CTRL 


CTRL 


CTRL 

:     (> 

CTRL 

7 

CTRL 

S 

03 

M 

m 
m 

El 

m 
□ 

Q 

S3 


WhenYbu 
Read: 

§43 
§5^ 
g6i 
g7g 

gag 

(  n  ) 

{  F2) 

{  B  ) 

{  H    t 

{  F5  ) 

{  F6  } 

{  F7  ) 

{  F8  ) 
4 


Press: 


COMMODORE 


H 


j  COMMODORE      2  j 

COMMODORE    j  3  ] 

COMMODORE      4 

COMMODORE      5 

I  COMMODORE 


j  COMMODORE 


COMMODORE 


0 


D 


Eg 

■I 

n 


fl 

SHIFT  i 

« 

(3 

SHIFT 

a 

fs 

SHIFT  j 

a 

ij 

April  1986    CXJMPUTEI     125 


key  (Atari  logo  key  on  400/800  models), 
Whenever  more  than  two  spaces 
appear  in  a  row,  they  are  listed  in  a 
special  format.  For  example,  (6 
SPACES  I  means  press  the  space  bar  six 
times.  Our  Commodore  listings  never 
leave  a  single  space  at  the  end  of  a  line, 
instead  moving  it  to  the  next  printed 
line  as  {SPACE;. 

Amiga  program  listings  contain 
only  one  special  character,  the  left  ar- 
row (-)  symbol.  This  character  marks 
the  end  of  each  program  line.  Wherever 
vou  see  a  left  arrow,  press  RETURN  or 
move  the  cursor  off  the  line  to  enter 
that  line  into  memory.  Don't  try  to  type 
in  the  left  arrow  symbol;  it's  there  only 
as  a  marker  to  indicate  where  each  pro- 
gram line  ends. 

The  Automatic  Proofreader 

Type  in  the  appropriate  program  listed 
below,  then  save  it  for  future  use.  The 
Commodore  Proofreader  works  on  the 
Commodore  128,  64,  Plus/4,  16,  and 
VlC-20.  Don't  omit  any  tines,  even  if 
they  contain  unfamiliar  commands  or 
you  think  they  don't  apply  to  vour  com- 
puter. When  you  run  the  program,  it 
installs  a  machine  language  program  in 
memory  and  erases  its  BASIC  portion 
automatically  (so  be  sure  to  save  sever- 
al copies  before  running  the  program 
for  the  first  time).  If  you're  using  a 
Commodore  128,  Plus/4  or  16,  do  not 
use  any  GRAPHIC  commands  while 
the  Proofreader  is  active.  You  should 
disable  the  Commodore  Proofreader 
before  running  any  other  program.  To 
do  this,  either  turn  the  computer  off  and 
on  or  enter  SYS  64738  (for  the  64),  SYS 
6534!  (128),  SYS  64802  (VlC-20),  or 
SYS  65526  (Plus/4  or  16).  To  reenable 
the  Proofreader,  reload  the  program 
and  run  it  as  usual.  Unlike  the  original 
VIC/64  Proofreader,  this  version  works 
the  same  with  disk  or  tape. 

On  the  Atari,  run  the  Proofreader 
to  activate  it  (the  Proofreader  remains 
active  in  memory  as  a  machine  lan- 
guage program);  you  must  then  enter 
NEW  to  erase  the  BASIC  loader.  Press- 
ing SYSTEM  RESET  deactivates  the 
Atari  Proofreader;  enter  PRINT 
USR(1536)  to  reenable  it. 

The  .^pple  Proofreader  erases  the 
BASIC  portion  of  itself  after  you  run  it, 
leaving  only  the  machine  language  por- 
tion in  memory.  It  works  with  either 
DOS  3.3  or  ProDOS.  Disable  the  Apple 
Proofreader  by  pressing  CTRL-RESET 
before  running  another  BASIC  program. 

The  IBM  Proofreader  is  a  BASIC 
program  that  simulates  the  IBM  BASIC 
line  editor,  letting  you  enter,  edit,  list, 
save,  and  load  programs  that  you  type. 
Type  RUN  to  activate.  Be  sure  to  leave 
Caps  Lock  on,  except  when  typing  low- 
ercase characters. 


Once  the  Proofreader  is  active,  try 
typing  in  a  line.  As  soon  as  you  press 
RETURN,  either  a  hexadecimal  number 
(on  the  .Apple)  or  a  pair  of  letters  (on  the 
Commodore,  Atari,  or  IBM)  appears. 
The  number  or  pair  of  letters  is  called  a 
checksum. 

Compare  the  value  displayed  on 
the  screen  by  the  Proofreader  with  the 
checksum  printed  in  the  program  list- 
ing in  the  magazine,  The  checksum  is 
given  to  the  left  of  each  line  number. 
Just  type  in  the  program  a  line  at  a  time 
(without  the  printed  checksum),  press 
RETURN  or  Enter,  and  compare  the 
checksums.  If  they  match,  go  on  to  the 
next  line.  If  not,  check  your  typing; 
you've  made  a  mistake.  Because  of  the 
checksum  method  used,  do  not  type 
abbreviations,  such  as  ?  for  PRINT.  On 
the  Atari  and  Apple  Proofreaders, 
spaces  are  not  counted  as  part  of  the 
checksum,  so  be  sure  you  type  the  right 
number  of  spaces  between  quote 
marks.  The  Atari  Proofreader  does  not 
check  to  see  that  you've  typed  the  char- 
acters in  the  right  order,  so  if  characters 
are  transposed,  the  checksum  still 
matches  the  listing.  The  Commodore 
Proofreader  catches  transposition  er- 
rors and  ignores  spaces  unless  they're 
enclosed  in  quotation  marks.  The  IBM 
Proofreader  detects  errors  in  spacing 
and  transposition, 

IBM  Proofreader  Commands 

Since  the  IBM  Proofreader  replaces  the 
computer's  normal  BASIC  line  editor,  it 
has  to  include  many  of  the  direct-mode 
IBM  BASIC  commands.  The  syntax  is 
identical  to  IBM  BASIC.  Commands 
simulated  are  LIST.  LLIST,  NEW, 
FILES.  SAVE,  and  LOAD.  When  listing 
your  program,  press  any  key  (except 
Ctrl-Break)  to  stop  the  listing.  If  you 
enter  NEW,  the  Proofreader  prompts 
you  to  press  Y  to  be  especially  sure  you 
mean  yes. 

Two  new  commands  are  BASIC 
and  CHECK.  BASIC  exits  the  Proof- 
reader back  to  IBM  BASIC,  leaving  the 
Proofreader  in  memory.  CHECK  works 
just  like  LIST,  but  shows  the  checksums 
along  with  the  listing.  After  you  have 
typed  in  a  program,  save  it  to  disk. 
Then  exit  the  Proofreader  with  the 
BASIC  command,  and  load  the  pro- 
gram as  usual  {this  replaces  the  Proof- 
reader in  memory).  You  can  now  run 
the  program,  but  you  may  want  to  re- 
save  it  to  disk.  This  will  shorten  it  on 
disk  and  make  it  load  faster,  but  it  can 
no  longer  be  edited  with  the  Proofread- 
er. If  you  want  to  convert  an  existing 
BASIC  program  to  Proofreader  format, 
save  it  to  disk  with  SAVE  "filename" , A. 


Program  1:  Atari 
Proofreader 

Bij  Charles  Brannon,  Program  Editor 

100  GRAPHICS  0 

110  FOR  1=1536  TO  1700!ReA 

D  A:POKE  I  , A: CK  =  CK  +  A : N 

EXT  1 
120  IF  CK<>19072  THEN  ?  " E 

rror  in  DATA  Statement 

s.    Check  Typing. ":END 


(  1536) 

"Automatic  Praofr 
Ndm  Act  i  vated .  " 


130 

A  =  USR 

140 

?  :  ? 

eader 

150 

END 

160 

DATA 

3,  201 

170 

DATA 

8,  243 

180 

DATA 

6,  1S3 

190 

DATA 

4,6,2 

200 

DATA 

1,78, 

210 

DATA 

,  105, 

220 

DATA 

,  141, 

230 

DATA 

238,  1 

240 

DATA 

24,  24 

250 

DATA 

46,8, 

260 

DATA 

,240, 

270 

DATA 

0,96, 

280 

DATA 

145,  8 

290 

DATA 

4,74, 

300 

DATA 

165,2 

310 

DATA 

8,  169 

320 

DATA 

0,  96 

104,160 
,69,240 
200, 200 
, 96, 200 
1S3, 26, 
, 26, 3, 1 
0, 189, 0 
32,224, 
208, 245 
6, 169, i 
79, 6, 2  4 
1,  141,9 
6, 173,5 
96, 6, 16 
0, 133,2 
25,241, 
244, 241 
1 , 76, 20 
0,0,0,0 
201 

155, 240 
7,72,24 
203, 133 
72, 152, 
72, 160, 
8, 200,  1 
208, 249 
74, 74,2 

161 . 160 
03, 41 , 1 

105. 161 
,0, 133, 
170,104 


, 0, 185, 26, 

,7 
192, 34, 20 

, 169,74 

3, 200, 169, 

62 

228, 157, 7 
16 

,  169, 93,  14 
.  141 

:8 


0 


173, 4, 22 

22B, 105, 

; 

03,96. 247, 
93,  6 

, 1 15, 241 , 1 
'5,238 
,0,32,62,2 

13,201 , 32 
■,  101 
;,  203,  104,  4 

72, 138 

0,  169,  128, 

92,  40 

',  165,  203,  7 
:4,  105 

,3,  145,88, 

5,2  4 

, 200, 145,8 

203, 104 

, 168, 104, 4 


Program  2:  IBM  Proofreader 

By  Charles  Branmm,  Program  Editor 

10  'Automatic  Proofreader  Vers 
ion  3.0  (Lines  205,206  adde 
d/190  deleted/ 470, 490  Chang 
ed  -from  V2.0) 
100  Din  Lt (500) ,LNUM( 500) : COLD 
R  0,7,7:KEY  OFF:CLS: MAX=0: 
LNUM(0) =65536! 
110  ON  ERROR  OOTO  120:KEY  1S,C 
HR*(41+CHR*(70) :0N  KEY (15) 
GDSUB  640:  KEY  (15)  ON:  (301 
D  130 
120  RESUME  130 

130  DEF,  SEG=S(H40:W=PEEK(8<H4A) 
140  ON  ERROR  (30T0  650:  PRINT:  PR 

INT"Praof reader  Ready, " 
130  LINE  INPUT  L*:Y=CSRLIN-INT 

{LEN(L»)/W)-1:L0DATE  Y,  1 
160  DEF  SE6=0:POKE  1050,30:POK: 
E  1052,34:POKE  1054,0:POKE 
1055, 79: POKE  1056, 13: POKE 
1057, 28: LINE  INPUT  L*:DEF 
SEB: IF  LS=""  THEN  150 
170  IF  LEFTS (LS, 1)="  "  THEN  LS 
=MID$(L*,2) :GDTO  170 


126     COMPUTEI      April  1<596 


1S0  IF  VAL(LeFT*(L«,2) )=0  AND 
MIDS(L*,3, 1)="  "  THEN  L*=M 
ID»(LS,4) 

200  IF  fiSC{L*)>57  THEN  260  'no 
line  number,  there-fore  co 
-mmand 

205  BL=INBTR(L4, "  ");IF  BL=0  T 
HEN  BLS=LS:GOTO  206  ELSE  B 
L«=LEFT«{L*,BL-1) 

206  LNUM=VflL(BL«) :TEXTS=HID«(L 
«, LEN (STR* (LNUM) ) +1 ) 

210  IF  TEXT*=""  THEN  GDSUB  540 
!lF  LNUM=LNUM(P)  THEN  GQSU 
B  560: GOTO  1 S0  ELSE  150 

220  CKSUM=0:FDR  1=1  TO  LEN(L*) 
: CKSUM= ( CKSUM+ASC ( M I D* { L» , 
I)>*I)  AND  255: NEXT: LOCATE 
Y, I:PRINT  CHRt(65+CKSUM/l 
6)+CHR*(63+(CKSUM  AND  15)) 
+"  "+L« 

230  BOSUB  540: IF  LNUM(P)=LNUM 
THEN  L$(P)=TE)(T*!GDTD  150 
'replace  line 

240  BOSUB  5B0:GOTO  150  'insert 
the  line 

260  TEXT*="":FOR  1=1  TO  LEN(L4 
) :A=ASC(HIDt(L»,I)  !  : TEXTS= 
TEXT*+CHR«(A+32t tA>96  AND 
A<123) ):NEXT 

270  DELIMITeR=INSTR(TEXT*,  ■■  " ) 
sCOMMAND$=TEXT*:  ARG$="":  IF 
DELIMITER  THEN  COI1t1AND«=L 
EFTS (TEXT*, DELIMITER-1)  :  AR 
G*=M1DS (TEXTS, DELIMITER+1 ) 
ELSE  DEL1MITER=INSTR(TEXT 
*,CHR$(34! ) : IF  DELIMITER  T 
HEN  CDMMflND*=LEFT*(TEXT*,D 
ELIMITER-n : ARGS=MID«(TEXT 
*, DELIMITER) 

280  IF  COHMANDS<>"LIST"  THEN  4 
10 

290  OPEN  "scrn:"  FOR  OUTPUT  AS 
4)1 

300  IF  flR6*=""  THEN  FIRST=0:P= 
MAX- 1: GOTO  340 

310  DELIMITER=INSTRtARGS, '■-■■): 
IF  DHLIMITER=0  THEN'LNUM=V 
AL(ARG«):GOSUB  540:FIRST=P 
;GOTD  340 

320  FIRST=VAL (LEFTS (ARG«,DELln 
ITER) ) :LAST=VAL(MID*(ARGS, 
DELIttITER+1) ) 

330  LNUM=FIRST: BOSUB  540: FIRST 
=P:LNUM=LAST:GOSUB  540: IF 
P=0  THEN  P=MAX-1 

340  FOR  X=FIR5T  TO  P:N«=MID*(S 
TR*(LNUM(X) ! ,2)+"  " 

350  IF  a<FLAe=0  THEN  AS="":GOT 
Q  370 

360  CKSUM=0: A4=NS+LS(X)  :FOR  1  = 
1  TO  LEN(AS) :CKSUM=<CKSUM+ 
A3C(MIDS(AS,I))tI)  AND  255 
:NeXT:AS=CHR*(65+CKSUM/16> 
+CHR*(65+(CKSUM  AND  15))+" 

370  PRINT  »1,AS+N*+L»(X) 

380  IF  INKEYSO""  THEN  X=P 

390  NEXT  : CLOSE  «1:CKFLAG=0 

400  GOTO  130 

410  IF  COMMANDS="LLIST"  THEN  0 

PEN  "Iptl:"  FOR  OUTPUT  AS 

«l:GQTO  300 
420  IF  COMMANDS--CHECK"  THEN  C 

KFLA6=1:G0TD  290 
430  IF  COMMANDS<>"SftVE"  THEN  4 

50 

440  GDSUB  600: OPEN  ARGS  FDR  OU 
TPUT  AS  «1:ARGS="":G0T0  30 
0 

450  IF  EOMMANDS<>"LOAD"  THEN  4 
90 


460  S0SU8  600: OPEN  ARGS  FOR  IN 

PUT  AS  #I:MAX=0:P-0 
470  WHILE  NOT  EOFfl):LINE  INPU 

T  #i,LS:BL=INSTR(LS, "  " ) : B 

L»=LEFT* (L*,BL-1) :LNUM(P>= 

VAL(BLS) :LS(P)=MID*(LS,LEN 

(STR*(VALCBL«) ) )+!) :P=P+1: 

WEND 
4B0  MAX=P:CLOSE  ttl:GDTO  130 
490  IF  CDMMANDS="NEW"  THEN  INF 

UT  "Erase  program  -    Are  yo 

u  sure";L*:IF  LEFTS (L*,i)= 

"y"  OR  LEFT*(LS, 1)="Y"  THE 

N  MAX=0 :LNUM(0) =65536 !: GOT 

O  130: ELSE  130 
500  IF  COMMAN0S='-BASIC"  THEN  C 

OLOR  7, 0,0: ON  ERROR  GOTO  0 

:CLS:END 
510  IF  COMMANDSO-FILES"  THEN 

520 
515  IF  flRG$=""  THEN  flRG$=-flj" 

ELSE  SEL-1: GDSUB  600 
517  FILES  ARGS-GDTO  130 
520  PRINT"Syntax  error": GOTO  1 

30 
540  P=0; WHILE  LNUM>LNUM(P)  AND 

P<MflX:P=P+l : WEND: RETURN 
560  MAX=MAX-l:FOR  X=P  TO  MAX:L 

NUM { X  >  =LNUM ( X  + 1 ) : L* ( X ) =LS ( 

X+1): NEXT: RETURN 
530  MAX=MAX+1:FDR  X=MAX  TO  P+1 
STEP  -1:LNUM(X)=LNUM(X-I) 

: LS ( X) =LS ( X-l ) ; NEXT: LS (P) = 

TEXTS: LNUM (P) =LNUM:  RETURN 
600  IF  LEFTS (ARGS, 1)<>CHRS( 34) 
THEN  520  ELSE  ARGS=MID«(A 

RES, 2) 
610  IF  RIBHTStARGS, 1)=CHRS(34) 
THEN  ARGS=LEFTStARG«,LEN( 

ARGS ) - 1 ) 
620  IF  SEL=0  AND  INSTR ( ARGS, " . 

")=0  THEN  AR6S=ARG*+".BAS" 
630  SEL=0: RETURN 
640  CLOSE  ttl  :CKFLAG=0:PRINT"St 

opped.  ■■:  RETURN  150 
650  PRINT  "Error  #" ;ERR: RESUME 
150 

Program  3:  Commodore 
Proofreader 

Bi/  Phillip  Nelson,  Assistnut  Editor 

10  VEC=PEEK(772)+2S6*PEEK(773) 

:LO=43:HI=44 
20  PRINT  "AUTOMATIC  PROOFREADE 

R  FOR  ";:IF  VEC=42364  THEN 

I  SPACE} PRINT  "C-64" 
30  IF  VEC=50556  THEN  PRINT  "VI 

C-20" 

49  IF  VEC=3515a  THEN  GRAPHIC  C 
LR:PRINT  "PLUS/4  &  16" 

50  IF  VEC=I7165  THEN  LO=45!HI= 
46:GRAPH1G  CLR:PRINT" 128 " 

60  SA=(PEEK(LO)+256*PEEK(HI) )+ 

6:ADR=SA 
70    FOR   J=0    TO    166: READ    BYT : POK 

E    ADR,BYT:ADR=ADR+I  :C!iK=CHK 

+BYT!NEXT 
80    IF    CHKO2057O    THEN    PRINT    "* 
ERROR*    CHECK    TYPING    IN    DATA 
STATEMENTS": END 
90    FOR   J=l    TO    5: READ    RF,LF,HF: 

RS=SA+RF:HB=INT(RB/256) : LB= 

RS-(256*HB) 
100    CHK=CHK+RF+LF+HF:POKE    SA+L 

F,LB:POKE    SA+HF, HB :NEXT 
110     IF    CHK<> 22054    THEN    PRINT    " 

*ERROR*    RELOAD    PROGRAM    AMD 


ISPACEjCHECK    FINAL    LINE": EN 

D 
120    POKE    SA+149,PEEK( 772) :POKE 

SA+150,PEEK(773) 
130    IFVEC-17165    THEN    POKE    SA+ 

14, 22: POKE    SA+18 , 23 : POKESA+ 

29,224 :POKESA+139,224 
140    PRINT    CHR5(147) rCHR5(17) r" 

PROOFREADER    ACTIVE": SYS    SA 
150    POKE    HI,PEEK(HI)+1 :POKE    (P 

EEK(LO)+25d*PEEK(HI))-1,0:N 

EW 
160    DATA    120,169,73,141,4,3,16 

9,3, 141,5,3 
170    DATA   80,96,165,20,133,167, 

165,21 ,133, 168, 169 
180    DATA    0,141,0,255,162,31,18 

1,199,157,227,3 
190    DATA    202,16,248,169,19,32, 

210,255,169,18,32 
200    DATA   210,255,160,0, 132,180 

,132,176,136,230,180 
210    DATA    200,185,0,2,240,46,20 

1,34,208,8,72 
220    DATA    165,176,73,255,133,17 

6,104,72,201,32,268 
230    DATA    7,165,176,203,3,104,2 

08,226, 104, 166, 180 
240    DATA    24,165,167,121,0,2,13 

3,167,165,168,105 
250    DATA    0,133,163,202,208,239 

,240,202, 165, 167,09 
260    DATA    168,72,41,15,168,185, 

211,3,32,210,255 
270    DATA    104,74,74,74,74,168,1 

85,211,3,32,210 
280    DATA    255,162,31,189,227,3, 

149,199,202,16,248 
290    DATA    169,146,32,210,255,76 

,86,137,65,66,67 
300    DATA    68,69,70,71,7  2,74,75, 

77,80,61,82,83,88 
310    DATA    13,2,7,167,31,32,151, 

116,117, 151,128,129,167,136 

,137 

Program  4:  Apple 
Proofreader 

By  Tim  Victor,  Editorial  Prograt)nih'r 

10  C  =  0:  FOR  I  =  76B  TO  76B  + 

68:  READ  A: C  =  C  +  A:  POKE  I 

,A:  NEXT 
20  IF  C  <  >  7258  THEN  PRINT  "ER 

ROR  IN  PROOFREADER  DATA  STAT 

EMENTS":  END 
30  IF  PEEK  (190  »  256)  <  >  76  T 

HEN  POKE  56,0:  POKE  57,3:  CA 

LL  1002:  BOTD  50 
40  PRINT  CHRS  (4) ; " IN»AS300" 
50  POKE  34,0:  HOME  :  POKE  34,1: 
VTAB  2:  PRINT  "PROOFREADER 

INSTALLED" 
60  NEW 

100  DATA  216,32,27,253,201,141 
110  DATA  208, &0, 138,72, 169,0 
120  DATA  72,139,255,1,201,160 
130  DATA  240,8,104,10,125,255 
140  DATA  1,105,0,72,202,200 
130  DATA  238,104,170,41,15,9 
160  DATA  48,201,58,144,2,233 
170  DATA  57,141,1,4,138,74 
180  DATA  74,74,74,41,15,9 
190  DATA  48,201,58,144,2,233 
200  DATA  57,141,0,4,104,170 
210  DATA  169,141,96  ® 


April  1986     COMPUTEI      127 


THE  AMAZING  VOICE  MASTER® 

Speech  and  Music  Processor 

»  Your  computer  can  talk  in  your  own 
voice.  Not  a  synthesizer  but  a  true  digitizer 
that  records  your  natural  voice  quality— and  in 
any  language  or  accent.  Words  and  phrases  can 
be  expanded  without  limit  from  disk. 

^  And  it  will  understand  what  you  say.  a 

real  word  recognizer  for  groups  of  32  words  or 
phrases  with  unlimited  expansion  from  disk 
memory.  Now  you  can  have  a  two  way  conver- 
sation with  your  computer! 

Easy  for  the  beginning  programmer 

with  new  BASIC  commands.  Machine  language 
programs  and  memory  locations  for  the  more 
experienced  software  author. 

Exciting  Music  Bonus  lets  you  hum  or 
whistle  to  write  and  perform.  Notes  literally 
scroll  by  as  you  hum!  Your  composition  can  be 
edited,  saved,  and  printed  out.  You  don't  have  to 
know  one  note  from  another  in  order  to  write 
and  compose! 

Based  upon  new  technologies  Invented  by  COVOX.  One  low 
price  buys  you  ttie  coinplete  ayatem— even  a  voice  controlled 
black-jack  game!  In  addition,  you  will  receive  a  subscription  lo 
COVOX  NEWS,  a  periodic  newsletter  about  speecti  tectinology, 
applications,  new  products,  up-dates,  and  user  contributions. 
You  will  never  llnd  a  better  value  (or  your  computer, 

UIM  LY    $09.9Q  Includes  all  hardware  and  software. 

For  telephone  demonstration  or  additional  information,  call 
(503)  342-1271.  FREE  audio  demo  tape  and  brochure  available. 
Availablefromyourdealerorby  mail.  When  ordering  by  mail  add  $4,00 
shipping  and  handling  ($10.00  for  foreign,  S6.00  Canada). 

The  Voice  Master  Is  available  lor  the  064,  C12B,  at)  Apple  li'a,  and  Atari 
800,  800XL  and  130XE,  Specify  model  when  ordering. 


)  For  Faster  Service  on  Credit  Card  Orders  only: 

ORDER  TOLL  FREE  1-800-523-9230 


COVOX   INC.  <»3)  342-1271 

675-D  Conger  Street,  Eugene,  OR  97402 

Telex  70601 7  (AV  ALARM  UD) 


Advertisers  Index: 


Reodar  Sarvie*  Numbar/Adverllsw 

102  Abacus  Software    

103  Abacus  Software    

104  Artificial  Intelligence  Research  Group 

105  Atari    

C  O.M.B-  Direct  Morlseling  Coip 

Commodore 

1 OA  CompuServe    

ComputAbllity    ,  , 

The  Computer  Book  Club    

Computer  Direct    

107  Computer  Moil  Order 

Covpx  he 

108  Duplicoling  Technolooies,  Ine 

109  Electronic  Arts    

1 10  Electronic  Arts    .  , 

1 1 1  Elek-Tek,  Inc 

1I2EPYX    

Halix  Institute    

1  IIJ&R  Music  world  

1 14  Kvon  Softwore 

Lyco  Computer    

1 16  tvlerCyne  Publishers.  Inc 

1 1 A  99/4A  tJationai  Assistance  Group  . . . 

I^Rl  Schools  

I  )7  Precision  Dato  Products  

118  Professcr  Jones 

1 1 9  Puma    

1 20  Quinsept,  Inc 

121  subLOGiC  Corporation  

122  Timeworks,  Inc , 

123  Unltech   

124  White  House  Computer   


Pas* 

.  ..  37 
...39 
,,,71 

24-25 
...  b? 
..  .  BC 

1 

...61 
...27 

54-57 

14-15 
..  12B 
,..  18 
. .  .  IFC 
..  2-3 
...51 
...  11 
..  118 
.  ..  29 
...53 

62-63 
...66 

..  lie 

...  35 
...88 
..  128 

...19 
...59 
. .  .  IBC 
..,.7 
.  .  118 
.  .   104 


COMPUTEI  CtassrfieOs  

COMPUTE!  Disk  Subscription 

COMPUTEI  Subscription    

COMPUTEI's  Apple  Applications  Special 

COMPUTEIs  Elementory  Amiga  BASIC  ood  Elementary  ST  BASIC 

COMPUTEI's  IBM  Books  Collection    

COMPUTEIs  Kids  ond  the  Atari  ST  ono  Kfcis  and  the  128 

COMPUTEIs  Programmer's  Guide   

40  Great  Flight  Simulator  Adventures ..,....,.,. 

12s  Machine  Languoge  for  Beginners 


.  120 
..17 
.,33 
.  49 
..  4 
..23 
,.64 
.  43 
.  .  9 
.    13 


^^y.  Professional  ..^y. 

^I^   HANDICAPPING  SYSTEMS  "^^ 


•  PRliSENTED  BY  PROFESSOR  .lONES  • 


35zf 


GLD.  Thoroughbred  "Gold"  Edition'" 

A    Fuir   'eatjfea  i^cFougnIJle□  analysis  designeo  'c 
1h.e  fjtolessio^al  ana  Th.^  serious  novice 
S159,95  cornpiete 

EGLD,  Enhanced  "Gold"  Edition'*' 

"Gold"  Edition  wilh  cqrntJiete  Maslfir  Be|tor'*  sySiem  integrated  anto  the 
same  dslt  This  oowsffui  pfogfam  mil  transfer  all  hofses  and  scofes  to  [he 
be[  anaiy&s  wth  a     s  rigie  koyssroke  " 

(Masrer  Eeitor'"  Ticiuclea]  5199.95  complete 

GLTD.  Limited  '-Gold"'" 

Enables  Professional  Handicappers  to  assign  specii'C  values  to  Ihe  lacmg 
vaiiaBies  ;w/  feel  are  imponan!  Cfcaie  prog*am  weigtii  based  on  a  panic  jiar 
lock  and  i^natune  it  (or  maximum  wm  percentage  fhispjogram  is  designed 
lOr    "eASg  a(  u^e"    The  us^r  ne^s  no  prOgrammttlg  fixfierience. 

icontains  Integrated  Bettor '1  S299.95  coitipieio 

^    ~     GD.  Gold  Dog  Analysis^*'  si 49.95 

TheCWtrprotessionargteimoundanaiysis  W'fU&gTaied  Qpixd-  Si 99.95 
avaiiaB'e  H^al  evarLfaies  ALL  vafawes 


Limiiod  Version  S299.95 


y^ 


compete  S159,95 
w/fntegrat«3  Betto'  S199.95 
Limiea  S2&9.95 


MHH.  Master  Harness 
Handicapper™ 

Prc'e^sional  Ecftware  oesjgned  to  ptcvide 
a  tnofough  arnaV&'S  ol  ^It  UOiler  and  pacer 

«aces  tn  the  Unsted  States  ana  Canada. 

Professor  Pix  Foolbair" 

Gomp^eie  STATISTICAL  ANALYSIS  an  Data  Base  allowing  ■  Oesignaiefl  " 

pruvtous  games  lo  be  evaiuaied  Siatisucai  Senes  S99.95 

w/Wrn-Los!  Power  Ratings  S149.95 

NBA.  Basketbair^  nba  S99.95    w/coiie^e  Si29.g5 

^'power  ratings  S149.95 

LOT.  Lottery  Analysis'" 

Slalislicai  conpanson  prog'am  designed  to  detect  subtle  patterns  <o  win- 
ning numbers  and  ^.gi[s  Lottery  (3-^  dhqil)  S79.95 

w^LottolMa*   99  D-9ii}S99.95 

PC-3  Portable  Computer  (4k)  w/choice  cl  Thorougfibfed  Gray 
fiouns  or  Trailer''      S249.95  (incJudss  poriatjis  computer  S  progtam  ] 

M-100   Portable  (32k)   WfcriOlceolTriCrOjignbred.  Greyhcurrd.  C 
TtoriBr  and  Masler  Bailor  SS49.9S 

(inciuoes  pcnatJ'ie  comouier  and  program  ] 


FREE  CATALOG! 


"Your  BEST 

BET  in 

handicapping 

software..." 

Reviewed  by: 

Whole  Earth 

Software  Guide 

Corona  Data 

Systems 


Prof.  Jones 

1940  W.  Stale 
Boise,  ID  63702 


AMEX 


48  HR.  FREE 
SHIPPING 


WcALL 
(208)  342-6939 


TERMS:  Fre*  shipping 
all  sortwara.  Add  Se  00 
fiardware/S6  00  C  0  D  ' 
UPS  B!ye  S6  0(VOut  ol 
CcLrtr/  S9  00/10  ReS'- 
dertjs  ■J3,>/3  rtflflKs  par- 
sor^al  checKs-Casrt  price 
only,  add  S'^-s  Visa,  MC. 
AMEX  Prices  sutjjec!  [o 
change 


A  WORTHWHILE  INVESTMENT 


ArxiiT  0  ■^^    Jii?  Databases  Tistonl  lifomxittor 


COMPUIB 


li  Vour  Tvon  Am 
4eed  At  Tou  TMnkT 
■todlp-h-lwi 

htrOHMnedon  U, 

ne.  AMfV,  MM  K, 


{^4ar  Modi* 

AldriUrt  tcroHvr 
An  totlHiMar'b 
bar  iaAc  pn^Qriu 


For  toMdTcTt^  J-r 
WsnTpieoHM* 


You  may  have  easily  spent  thousands  on  your  computer. 
Whiatever  you  spent,  it  was  a  wise  and  worthwtiile 
investment!  Now  mal<e  your  computer  even  more  valuable  by 
subscribing  to  Compute!,  the  leading  magazine  ot  home, 
educational  and  recreational  computing. 

1  Year/$24       :2Years/$45  "'1320 

Name  

Address  

City 


_State_ 


_Zip_ 


D Payment  Enclosed  D  Bill  Me  Later   G Check  Here  If  Renewal 
Please  indicate  the  computer  you  use: 

64D03 


APPLE  a  01 
IBM  DOS 


ATARI  a  02 
TEX  INS  □  06 


VIC  20  n  04 


OTHER_ 


For  Foreign  &  Canadian  Subscribers,  please  add  $6  (U.S.)  per  year  postage,     g 


BUSINESS  REPLY  MAIL 

FIRST  CLASS  PERMIT  NO.  7478  DES  MOINES.  IOWA 


POSTAGE  WILL  BE  PAID  BY  ADDRESSEE 


COMPUTE! 

PO  BOX  10954 

DES  MOINES,  IOWA  50347 


NO  POSTAGE 

NECESSARY 

IF  MAILED 

IN  THE 

UNITED  STATES 


COMPUTEl's  Disk 

YES!  I  want  to  save  time  and  money.  Please  enter  my  quarterly  subscription 
to  the  following  COMPUTEI  Disk: 

n  Commodore        D  Apple        D  Atari        G  IBIVI 

D  Save  33%  off  the  single  issue  D  Save  even  more!  2  year  subscription, 

price,  1  year  subscription,  S39.95  S69.95 

All  Disk  orders  must  be  prepaid. 

D  Payment  enclosed  (check  or  money  order) 
^D  Charge    D  MasterCard    DVisa 

Acct.  No Exp.  Date 

Signature 

Name 

Address 


City State Zip . 


(Outside  U.S.  and  Canada,  add  S9.00  peryear  for  shipping  and  handling.) 


J1510 


BUSINESS  REPLY  MAIL 

FIRST  CLASS      PERMIT  NO.  7551      DES  MOINES,  lA 


POSTAGE  WILL  BE  PAID  BV  ADDRESSEE 


NO  POSTAGE 
NECESSARY 
IF  MAILED 
IN  THE 
UNITED  STATES 


COMPUTEi'sDISK 

P.O.  BOX  10036 

DES  MOINES,  [A  50347 


COMPUTEI's  APPLE  APPLICATIONS  SPECIAL 


n  COMPUTEI's  Apple  Applications 
Special.  Spring  1986    $3.95 

(In  U.S.  add  $1.00  shipping  and  handling 
charges:  outside  U.S.  add  $2.00) 


□  Componion  Disk  to  COMPUTEI's 
Apple  Applications  Special, 

Spring  1986    $16.95 

(Add  $2.00  shipping  and  hondling  charges) 


To  order,  send  in  this  card  with  your  payment  or  coll  toll-free  800-346-6767, 
ALL  ORDERS  MUST  BE  PREPAID  IN  U.S.  FUNDS.  (in  imv 212-867-8525.) 

D  Payment  enclosed  (check  or  money  order). 
D  Charge:  □  Visa    D  MasterCard 


Account  No. 
Signature 


Exp.  DGte_ 


(Requiiedl 


IRequirea  wtien  using  credit  card) 


Name 

Address. 
City 


(Please  print) 


State. 


Zip. 


AAC4a6 


COMPUTEPs 

APPLE  APPLICATIONS  SPECIAL 

6th  FLOOR  SALES  DEPARTMENT 
825  Seventh  Ave. 
NewYork,N,Y,  10019 


COMPUTEI'S 

FREE  Reader  Information  Service 

Use  these  cards  to  request  FREE  information  about  tlie  products  ad- 
vertised in  tliis  issue.  Cieariy  print  or  type  your  fuli  name  and  address. 
Only  one  card  siiouid  be  used  per  person.  Circie  tlie  numbers  that 
correspond  to  the  l<ey  number  appearing  in  the  advertisers  index. 

Send  in  the  card  and  the  advertisers  wiil  receive  your  inquiry.  Al- 
though every  effort  is  made  to  insure  that  only  advertisers  wishing  to 
provide  product  information  have  reader  service  numbers,  computei 
cannot  be  responsible  if  advertisers  do  not  provide  literature  to 
readers. 

Please  use  these  cards  only  for  subscribing  or  for  requesting  product 
information.  Editorial  and  customer  service  inquiries  should  be  ad- 
dressed to:  COMPUTE!,  P.O.  Box  5406,  Greensboro,  NC  27403.  Check 
the  expiration  date  on  the  card  to  insure  proper  handling. 

Use  these  cards  and  ttiis  address  only  for  computei's  Reader  Infor- 
mation Service.  Do  not  send  with  payment  in  any  form. 


COMPUTE! 


101  102  103  lOd  105  106  107  108  109  110  111  112  113  114  115  116  117 

118  119  120  121  122  123  124  125  126  127  128  129  130  131  132  133  134 

135  136  137  138  139  140  141  142  143  144  146  146  147  148  149  ISO  151 

152  153  154  155  156  157  158  159  160  161  162  163  164  165  166  167  168 

169  170  171  172  173  174  175  176  177  178  179  180  161  182  163  184  185 

186  187  188  189  190  191  192  193  194  195  196  197  198  199  200  201  202 

203  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219 

220  221  222  223  224  225  226  227  22S  229  230  231  232  233  234  235  236 

237  238  239  240  241  242  243  244  245  246  247  248  249  250  251  252  253 


Please  let  us  know.  Do  you 


D 

270 

D 

272 

D 

274 
D 

D 

278 

D 

280 


Apple . 
Atari  _ 


plan  to  buy: 


D 

271 


Commodore 

IBM 


TI-99/4A 
Other 


(specify  model) 


n 

273 

D 
275 

D 

277 

a 

27') 

D 

281 


Please  print  or  type  name  and  address. 
Limit  one  card  per  person. 

Name 


Address 


City 


State/Province 


Zip 


Country 


Phone 


Please  Include  ZIP  Code 


Expkatlon  Date  5/31/86 


C0486 


SUBSCRIBE  TO  COMPUTE! 

My  Computer  Is: 

01  n  Apple     02  n  Atari     03  D  Commodore  64 

M  D  VIC-20     05  D  IBM     06  D  T1-99/4A 

99  D  Other D  Don't  yet  hove  one. 


For  Fastest  Service, 

Call  Our  Toll-Free 

US  Ordef  Line 

In  U  call  VaaO-532-1272 


n  $24.00  One  Year  US  Subscription 
D  $45.00  Two  Year  US  Subscription 


Name 

Address 

City 

State 

Zip 

D  Payment  Enclosed 
Charge  my:  D  VISA 
Account  No. 

D  Bill  me 
D  MasterCard 

D  American  Express 
Expires             / 

■rtour  subscnptlon  will  E^egJn  wilh  the  next  avajlable  issue.  Pleose  allow  d-6  weeks  (or  delivery  of  first  issue  Subscription  prices  Eul3|ect  to 
Change  at  ony  lime.  Oulslde  ttie  U.Sj*.  please  odd  $6  for  each  suOscription-  ,.._..„ 

J1510 


Place 

Stamp 

Here 


COMPUTE!  Reader  Service 

P.O.  Box  2141 
Radnor,  PA  1 9089 


BUSINESS  REPLY  MAIL 

FIRST  CLASS  PERMIT  NO.  7478  DES  MOINES,  IOWA 


POSTAGE  WILL  BE  PAID  BY  ADDRESSEE 


COMPUTE! 

PO  BOX  10954 

DES  MOINES,  IOWA  50347 


NO  POSTAGE 

NECESSARY 

IF  MAILED 

IN  THE 

UNITED  STATES 


Flight  Simulator  li 

Scenery  DFsks 

The  Challenge  of  Accomplished  Flight     "^w* 

With  a  realism  comparable  to  (and  in  some  ways  even  surpassing) 
$100,000  aircraft  flight  simulators,  Flight  Simulator  11  includes  full 
flight  instrumentation  and  avionics,  and  provides  a  full-color  out-the- 
window  view.  Instruments  are  arranged  in  the  format  standard  to 
modern  aircraft.  All  the  radios  needed  for  !FR  flight  are  included. 
Front,  rear,  left,  right,  and  diagonal  views  let  you  look  in  any  direction. 
Program  features  are  clearly  documented  in  a  96-page  Pilot's  Operat- 


ing Handbook.  ^Bii^^lil 

For  training  in  proper  flight  techniques.  Flight  Simulator  II  includes 
another  9&-page  instruction  manual,  compiled  by  two  professional 
flight  instructors  with  over  8,000  hours  flight  time  and  12,000  hours 
of  aviation  teaching  experience.  You'll  learn  correct  FAA- 
recommended  flight  procedures,  from  basic  aircraft  control  through 
instrument  approaches.  To  reward  your  accomplishments,  the 
manual  even  includes  a  section  on  aerobatic  maneuvers. 

The  Realism  and  Beauty  of  Flight 

Go  sight-seeing  over  detailed,  realistic  United  States       ^np 
scenery.  High-speed  graphic  drivers  provide  an 
animated  out-the-window  view  in  either  day,  dusk,  or 
night  flying  modes. 


Flight  Simulator  II  features  over  80  airports  in  four 
different  scenery  areas:  New  York,  Chicago,  Seattle, 
and  Los  Angeles.  Six  additional  Scenery  Disks  covering 
the  entire  Western  half  of  the  United  States  are  now 
available  in  IBM  and  C64/1 28  disk  formats. 


Apple  and  Atari  versions  will  be  released  soon.  Each  disk  covers  a 
geographical  region  of  the  country  in  detail,  and  is  very  reasonably 

priced.  

The  Pure  Fun  of  "World  War  I  Ace" 

When  you  think  you're  ready,  you  can  test  your  flying  skills  with  the 
"World  War  I  Ace"  aerial  battle  game.  This  game  sends  you  on  a 
bombing  run  over  heavily-defended  enemy  territory.  Six  enemy 
fighters  will  attempt  to  engage  you  in  combat  as  soon  as  war  is 
declared.  Your  aircraft  can  carry  five  bombs,  and  your  machine  guns 
are  loaded  with  i  00  rounds  of  ammunition. 

See  Your  Dealer.  Flight  Simulator  Jl  is  available  on  disk  for  the 
Apple  II,  Atari  XL/XE,  and  Commodore  64/128  computers  for 
$49.95.  Scenery  Disks  for  the  C64  and  IBM  PC  (Jet  or  Microsoft 
Flight  Simulator)  are  $  1 9.95  each.  A  complete  Western  U.S.  Scenery 
six-disk  set  is  also  available  for  $99.95.  For  additional  product  or 
ordering  information,  call  (800)  637-4983.  ■  ' 

Apple  II  I!  1  indemjrk  6(  Apple  Computer.  Inc. 
Atm  XL  and  Xi  arc  trademarks  of  Atari  Corp. 

Commodore  61  md  1 2B  arc  trjdereurks  of  Commodore  Electronics  Lit), 

IBM  PC  IS  1  rejiltered  irjdeirvark  of  International  BusinBJ  Machines  Corp. 


Liiq[ 

^^^^^ 

LOGIC 


713  Edgebrook  Drive 
Champaign  IL  61820 
(217)  359-8482  Tele»:  206995 

Order  Line:  (800)  637-4983 

fexceplin  Illinois.  Alaska  andHawaTil 


.,.  AV- 


I- 


All  you  need  to  do  this 


{? 


graph  a  spreadsheet 


write  a  novel 


fix  an  engine 


compose  a  song 


palnfo  picture 


your  banking 


learn  to  fly 


organize  o  data  base 


tell  a  story 


1 

p. 

.-'-'V 

■  if 

'■'? 

■ 

HI 

i 

■ 

i 

i 

; 
.■i 

I 

^ 

: 

forecast  sales 


t 


45 1985.  Comrnooore  Elecirortici  limiTec 
«•  CP/M  IS  a  regiUered  rrodemorfc  of  Dtgrrol  Rewotch.  irx 
*  Apple  n  a  registered  rrademoflc  of  Appte  Computer,  inc 
®  i&M  IS  c  legiiterea  rrademoili  of 

tnternanonal  Business  Machines  Corporaiion 
i!s  Commodore  6*  li  a  regisiered  rrodemart  of  Commodore  Eiecrronic^.  Ud 


Wher^  if  comes  fo  personal  computers,  you 
want  the  smartest,  at  a  price  that  mokes  sense. 
Thie  nev^/ Commodore  128'"  system  has  a 
powerful  128K  memory  expandable  by  512K. 
An  80-column  display  and  64, 128  and  CP/M® 
modes  for  easy  access  to  thousands  of  edu- 
cational, business  and  home  programs.  And  a 
keyboard,  with  built-in  numeric  keypad,  that 
operates  with  little  effort. 

Or  if  the  Commodore  128  is  more  machine 
than  you  had  in  mind,  you  con  pick  up  the 
Commodore  64®  The  Commodore  64  is 
our  lower- priced  model  geared  to  more 
fundamental,  basic  needs. 

Discover  personal  computers  thof 
do  more  for  you.  At  prices  you've 
been  waiting  for  From  the  company 
that  sells  more  personal  computers 
■■  than  IBM®  or  Apple® 


■ft 


COMMODORE  128  AND  64    PERSONAL  COMPUTERS 

A  Higher  Intelligence 


:i